您可以设置 Google Cloud Search,使其不仅能返回 Google Workspace 内容,还能返回贵组织的 Microsoft Windows 共享搜索结果。您可以使用 Google Cloud Search 文件系统连接器,并将其配置为访问指定的 Windows 共享。单个连接器实例可以支持多个 Microsoft Windows 共享。
重要注意事项
持续自动更新
默认情况下,连接器启动时会持续监控起始路径(连接器配置文件中 fs.src
的值)。当文件系统报告内容或访问权限控制发生更改时,会触发连接器重新抓取文件系统。这种重新抓取过程可能会占用大量资源。如需关闭文件系统监控功能,请将 fs.monitorForUpdates
设置为 false
。您可以显著减少连接器的资源使用量,但会延迟连接器反映更改的时间。了解详情
DFS 访问控制
DFS 系统对其链接应用访问控制,并且通常每个 DFS 链接都有自己的 ACL。DFS 使用的一种机制是基于访问的枚举 (ABE),该机制可以限制返回到用户的 DFS 链接。当 ABE 隔离托管主目录时,用户可能只会获得一部分 DFS 链接,甚至可能只获得一个链接。当连接器遍历 DFS 系统时,该连接器遵循 DFS 链接 ACL 和目标的共享 ACL,而共享 ACL 继承自 DFS ACL。
已知限制
- 文件系统:文件系统连接器不支持映射驱动器和本地驱动器。
- 分布式文件系统:映射到 UNC DFS 的驱动器无法正常工作。部分 ACL 未正确读取。
- 文件系统连接器支持分布式文件系统 (DFS) 命名空间和链接。但是,连接器仅支持 DFS 命名空间中的 DFS 链接,而不支持 DFS 命名空间中的常规文件夹。
- cloudsearch.google.com 中返回的文件链接不可点击。在大多数浏览器中,Query API 返回的文件链接也无法点击。
系统要求
系统要求 | |
---|---|
操作系统 |
|
软件 |
|
文件系统协议 |
不支持:本地 Windows 文件系统、Sun 网络文件系统 (NFS) 2.0、Sun 网络文件系统 (NFS) 3.0 或本地 Linux 文件系统。 |
部署连接器
前提条件
在部署 Cloud Search 文件系统连接器之前,请确保您的环境具备以下所有必备组件:
在 Google Cloud Search 和数据源之间建立关系所需的 Google Workspace 信息:
- Google Workspace 私钥(包含服务帐号 ID)。如需了解如何获取私钥,请参阅 配置对 Google Cloud Search REST API 的访问权限。
- Google Workspace 数据源 ID。如需了解如何获取数据源 ID,请参阅添加要搜索的数据源。
- 身份源 ID。如需了解如何获取身份源 ID,请参阅创建身份源。如果您将 Google Workspace 目录与 Active Directory 同步,请使用 GCDS 设置身份源。
贵组织的 Google Workspace 管理员通常可以为您获取这些凭据。
确保 Windows 账号具有足够的权限,如以下部分所述。
所需的 Microsoft Windows 账号权限
运行连接器的 Microsoft Windows 账号必须具有足够的权限才能执行以下操作:
- 列出文件夹的内容
- 读取文档的内容
- 读取文件的属性和文件夹的属性
- 读取对文件和文件夹的权限 (ACL)
- 写入基本特性权限
以下某个群组的成员可为 Windows 帐号授予连接器所需的足够权限:
- 管理员
- 高级用户
- 打印操作员
- 服务器操作员
第 1 步:安装 Google Cloud Search 文件系统连接器
从 GitHub 获取连接器代码库并进行构建。
如需在 Windows Server 上使用 Git,请执行以下操作:
克隆代码库:
> git clone https://github.com/google-cloudsearch/windows-filesystems-connector.git > cd windows-filesystems-connector
检出所需的连接器版本:
> git checkout tags/v1-0.0.3
如需直接从 GitHub 下载,请执行以下操作:
- 转到 https://github.com/google-cloudsearch/windows-filesystems-connector。
- 依次点击 Clone or download 下载 zip。
- 解压缩该软件包。
- 移至新目录:
> cd windows-filesystems-connector
构建连接器。安装 Apache Maven(如有必要)。
> mvn package
如需在构建连接器时跳过测试,请运行
mvn package -DskipTests
而不是mvn package
。将连接器 zip 文件复制到本地安装目录:
> cp target/google-cloudsearch-windows-filesystems-connector-v1-0.0.3.zip installation-dir > cd installation-dir > unzip google-cloudsearch-windows-filesystems-connector-v1-0.0.3.zip > cd google-cloudsearch-windows-filesystems-connector-v1-0.0.3
第 2 步:创建连接器配置文件
在安装连接器的同一目录中,创建一个文件并将其命名为
connector-config.properties
。将参数作为键值对添加到文件内容中,如以下示例所示:
### File system connector configuration ### # Required parameters for Cloud Search data source and identity source access api.serviceAccountPrivateKeyFile=/path/to/file.json api.sourceId=0123456789abcde api.identitySourceId=a1b1c1234567 # Required parameters for file system access fs.src=\\\\host\\share;\\\\dfshost\\dfsnamespace;\\\\dfshost\\dfsnamespace\\link # Optional parameters for file system monitoring traverse.abortAfterExceptions=500 fs.monitorForUpdates = true fs.preserveLastAccessTime = IF_ALLOWED
(可选)根据需要配置其他连接器参数。如需了解详情,请参阅 Google 提供的连接器参数。
第 3 步:启用日志记录
- 在包含连接器二进制文件的目录中创建一个名为
logs
的文件夹。 在包含连接器二进制文件的目录中创建一个名为
logging.properties
的 ASCII 或 UTF-8 文件,并添加以下内容:handlers = java.util.logging.ConsoleHandler,java.util.logging.FileHandler # Default log level .level = WARNING com.google.enterprise.cloudsearch.level = INFO com.google.enterprise.cloudsearch.fs.level = INFO # uncomment line below to increase logging level to enable API trace #com.google.api.client.http.level = FINE java.util.logging.ConsoleHandler.level = INFO java.util.logging.FileHandler.pattern=logs/connector-fs.%g.log java.util.logging.FileHandler.limit=10485760 java.util.logging.FileHandler.count=10 java.util.logging.FileHandler.formatter=java.util.logging.SimpleFormatter
第 4 步:(可选)配置媒体类型
默认情况下,连接器会使用 JDK 提供的媒体类型检测功能尝试检测每个文件的媒体类型。在 Microsoft Windows 上,JDK 依赖于 Windows 注册表来确定文件的媒体类型。缺少注册表条目可能会导致某些文件的媒体类型为空。
如有必要,您可以指定覆盖任何现有绑定或阻止 null 媒体类型的媒体类型。
- 在连接器目录中,创建一个名为
mime-type.properties
的 Latin-1 加密文件。 输入文件扩展名及其对应的媒体类型,如以下示例所示:
xlsx=application/vnd.openxmlformats-officedocument.spreadsheetml.sheet one=application/msonenote txt=text/plain pdf=application/pdf
第 5 步:运行文件系统连接器
安装和配置文件系统连接器后,如需在主机上启动该连接器,请运行类似如下的命令:
> java -jar google-cloudsearch-windows-filesystems-connector-v1-0.0.3.jar -Djava.util.logging.config.file=logging.properties[ -Dconfig=my.config]
如果配置文件路径与默认值不同(与名为 connector-config.properties
的二进制文件位于同一目录中),请指定该路径。
配置参数参考
数据源访问权限
设置 | 参数 |
数据源 ID | api.sourceId=1234567890abcdef
必需。由 Google Workspace 管理员设置的 Google Cloud Search 来源 ID。 |
服务账号私钥文件路径 | api.serviceAccountPrivateKeyFile=./PrivateKey.json
必需。访问 Google Cloud Search 文件系统连接器所需的 Google Cloud Search 服务账号密钥文件。 |
身份源 ID | api.identitySourceId=x0987654321
必需。由 Google Workspace 管理员设置的 Cloud Search 身份源 ID,用于通过 GCDS 同步 Active Directory 身份。 |
文件系统访问
设置 | 参数 |
源文件系统 | fs.src=path1[,path2, ...]
必需。将源文件系统指定为一个或多个 UNC 源文件,以由 |
路径分隔符
设置 | 参数 |
路径分隔符 | fs.src.separator=separator-character
默认分隔符为“;”。如果源路径包含英文分号,您可以设置其他分隔符(如英文逗号(“,”),该分隔符不会与路径中的字符冲突,也不会被属性文件语法本身预留。 如果 |
连接器行为
设置 | 参数 |
Windows 网域 | fs.supportedDomain=domain
如要允许使用 GCDS 设置的用户通过 Cloud Search 访问文档,则必须启用。指定为 Active Directory 的单个 NetBIOS 域名。 |
在 ACL 中添加账号 | fs.supportedAccounts=account-1[, account-2,...]
包含在 ACL 中的帐号列表(以英文逗号分隔),无论这些帐号是否为内置帐号。 默认值为 |
从 ACL 中排除内置账号 | fs.builtinGroupPrefix=prefix
指定内置帐号的前缀。以此前缀开头的账号会被视为内置账号,将从 ACL 中排除。 默认值为 |
允许将隐藏的文件和文件夹编入索引 | fs.crawlHiddenFiles=boolean
设置为 |
允许将抓取的文件夹列表和 DFS 命名空间枚举编入索引 | fs.indexFolders=boolean
如果设置为 |
启用文件系统更改监控 | fs.monitorForUpdates=boolean
如果设置为 |
设置目录缓存的大小上限 | fs.directoryCacheSize=number-of-entries
目录缓存的大小上限。连接器使用缓存来识别隐藏文件夹,以避免将隐藏文件夹中的文件和文件夹编入索引。 默认值为 50,000 个条目,这通常会占用 10–15 MB 的 RAM。 |
时间戳保留和抓取控制
设置 | 参数 |
保留上次访问时间戳 | fs.preserveLastAccessTime=value
在抓取文件和文件夹时,该连接器可将文件和文件夹的上次访问时间戳更改为抓取时间。如果上次访问时间未保留,备份和归档系统可能不会因为连接器的访问将相应的文件和文件夹移至辅助存储空间。 默认情况下,连接器会尝试保留上次访问时间( 可能的值包括:
|
仅抓取在特定日期之后访问过的文件 | fs.lastAccessedDate=YYYY-MM-DD
仅当上次访问时间晚于指定日期时,才抓取内容。默认值为 请以 ISO8601 日期格式指定日期:YYYY-MM-DD。例如,如果值为 2010-01-01,则连接器仅抓取 2010 年初之后访问的内容。 如果您指定了 |
仅抓取在过去几天内访问过的文件 | fs.lastAccessedDays=number-of-days
仅当上次访问时间在距离当前天数以内时,才抓取内容。默认值为 使用此属性可过期一段时间内未访问过的先前已编入索引的内容。例如,如果将此政策设为 365,系统将仅抓取在过去一年内访问过的内容。 如果您指定了 |
仅抓取在特定日期之后修改过的文件 | fs.lastModifiedDate=YYYY-MM-DD
仅当上次修改时间在指定日期之后时抓取内容。默认值为 请以 ISO8601 日期格式指定日期:YYYY-MM-DD。例如,如果值为 2010-01-01,则连接器仅抓取 2010 年初之后修改的内容。 如果您指定了 |
仅抓取在过去几天内修改过的文件 | fs.lastModifiedDays=number-of-days
仅当上次修改时间在距离现在的天数内时,才抓取内容。默认值为 使用此属性可过期一段时间内未修改的先前已编入索引的内容。例如,如果设置为 365,则系统仅会抓取在过去一年内修改过的内容。 如果您指定了 |
跳过文件共享访问控制
默认情况下,该连接器在向 Indexing API 发送访问控制列表 (ACL)(包括文件共享的 ACL)时,会保留访问权限控制的完整性。不过,在某些配置中,连接器可能没有足够的权限来读取共享 ACL。在这种情况下,连接器不会在搜索结果中返回在该文件共享中维护的任何文件。
您可以将连接器设置为忽略共享 ACL,以便始终在搜索结果中返回内容。在这种情况下,Indexing API 会获取完全宽松的共享 ACL,而不是实际的共享 ACL。
设置 | 参数 |
跳过文件共享访问控制 | fs.skipShareAccessControl=boolean
设置为 |