您可以设置 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 服务器上使用 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。
- 依次点击克隆或下载 下载 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。
如有必要,您可以指定一种媒体类型,以覆盖任何现有绑定或防止出现 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 源,这些 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 可仅抓取过去一年内修改过的内容。 如果您指定了 |
跳过文件共享访问控制
默认情况下,连接器在将访问控制列表 (ACL)(包括文件共享的 ACL)发送到 Indexing API 时,会保留访问控制完整性。不过,在某些配置中,连接器可能没有足够的权限来读取共享 ACL。在这种情况下,连接器不会在搜索结果中返回该文件共享上维护的任何文件。
您可以将连接器设置为忽略共享 ACL,以便始终在搜索结果中返回内容。在这种情况下,编制索引 API 会获得一个完全能够访问的共享 ACL,而不是实际的共享 ACL。
| 设置 | 参数 |
| 跳过文件共享访问控制 | fs.skipShareAccessControl=boolean
设置为 |