部署 Microsoft Windows File Systems 連接器

您可以設定 Google Cloud Search,讓系統除了 Google Workspace 內容外,也從貴機構的 Microsoft Windows 共用資料夾傳回結果。您可以使用 Google Cloud Search File Systems 連接器,並設定該連接器來存取指定的 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 Server 2016
  • Windows Server 2012
  • Windows Server 2008 R2
軟體
  • 在執行 Google Cloud Search File Systems 連接器的電腦上安裝 Java JRE 1.8
檔案系統通訊協定
  • 伺服器訊息區塊 (SMB) - SMB1
  • 伺服器訊息區塊 (SMB) - SMB2
  • 分散式檔案系統 (DFS)

不支援:本機 Windows 檔案系統、Sun Network File System (NFS) 2.0、Sun Network File System (NFS) 3.0 或本機 Linux 檔案系統。

部署連接器

必要條件

部署 Cloud Search File Systems 連接器前,請確認您的環境具備下列所有必要元件:

Microsoft Windows 帳戶的必要權限

連接器執行的 Microsoft Windows 帳戶必須具備足夠權限,才能執行下列動作:

  • 列出資料夾內容
  • 讀取文件內容
  • 讀取檔案和資料夾的屬性
  • 檔案和資料夾的讀取權限 (ACL)
  • 寫入基本屬性權限

Windows 帳戶只要是下列任一群組的成員,就能取得連接器所需的足夠權限:

  • 管理員
  • 進階使用者
  • 列印作業員
  • 伺服器操作員

步驟 1:安裝 Google Cloud Search File Systems 連接器

  1. 從 GitHub 取得連接器存放區並建構。

    如要在 Windows 伺服器上使用 Git,請按照下列步驟操作:

    1. 複製存放區:

      > git clone https://github.com/google-cloudsearch/windows-filesystems-connector.git
      > cd windows-filesystems-connector
    2. 查看所需版本的連接器:

      > git checkout tags/v1-0.0.3

    如要直接從 GitHub 下載:

    1. 前往 https://github.com/google-cloudsearch/windows-filesystems-connector
    2. 依序點選「複製或下載」「下載 ZIP 檔案」
    3. 解壓縮套件。
    4. 移至新目錄:
      > cd windows-filesystems-connector
  2. 建構連接器。如有必要,請安裝 Apache Maven

    > mvn package

    如要在建構連接器時略過測試,請執行 mvn package -DskipTests,而非 mvn package

  3. 將連結器 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:建立連接器設定檔

  1. 在連接器安裝目錄中建立檔案,並命名為 connector-config.properties

  2. 將參數新增為鍵/值組合至檔案內容,如下例所示:

    ### 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
    

    如需各項參數的詳細說明,請參閱 設定參數參考資料

  3. (選用) 視需要設定其他連接器參數。詳情請參閱「Google 提供的連接器參數」。

步驟 3:啟用記錄功能

  1. 在包含連接器二進位檔的目錄中,建立名為 logs 的資料夾。
  2. 在包含連接器二進位檔的目錄中,建立名為 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 登錄檔判斷檔案的媒體類型。如果缺少登錄項目,特定檔案的媒體類型可能會為空值。

如有需要,您可以指定媒體類型,覆寫現有繫結或防止媒體類型為空值。

  1. 在連接器目錄中,建立名為 mime-type.properties 的 Latin-1 加密檔案。
  2. 輸入副檔名和對應的媒體類型,如下列範例所示:

    xlsx=application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
    one=application/msonenote
    txt=text/plain
    pdf=application/pdf
    

步驟 5:執行 File Systems 連接器

安裝及設定 File Systems 連接器後,如要在主機上啟動連接器,請執行類似下列範例的指令:

> 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 設定的分隔符號分隔。如果您使用的字元不在 Latin1 中,請使用 Java Unicode 逸出字元編碼。

路徑分隔字元

設定 參數
路徑分隔符字元 fs.src.separator=separator-character

預設分隔符號為「;」。如果來源路徑包含半形分號,您可以設定其他分隔符號,例如半形逗號「,」,這類符號不會與路徑中的字元衝突,也不會保留給屬性檔案語法本身。

如果 fs.src.separator 值是空字串,系統會將 fs.src 值視為單一路徑。

連接器行為

設定 參數
Windows 網域 fs.supportedDomain=domain

如果使用者已設定 GCDS,必須啟用這項設定,才能透過 Cloud Search 存取文件。指定為 Active Directory 的單一 NetBIOS 網域名稱。

在 ACL 中納入帳戶 fs.supportedAccounts=account-1[, account-2,...]

以半形逗號分隔的帳戶清單,無論是否為內建帳戶,都會納入 ACL。

預設值為 BUILTIN\\Administrators,Everyone,BUILTIN\\Users, BUILTIN\\Guest,NT AUTHORITY\\INTERACTIVE, NT AUTHORITY\\Authenticated Users

從存取控制清單中排除內建帳戶 fs.builtinGroupPrefix=prefix

指定內建帳戶的前置字串。以這個前置字元開頭的帳戶會視為內建帳戶,並從 ACL 中排除。

預設值為 BUILTIN\\

允許為隱藏檔案和資料夾建立索引 fs.crawlHiddenFiles=boolean

設為 true,允許連接器檢索隱藏的檔案和資料夾 (在 Windows 檔案系統中,如果設定了 DOS 隱藏屬性,檔案或資料夾就會視為隱藏)。預設值為 false

允許為已檢索的資料夾清單和 DFS 命名空間列舉建立索引 fs.indexFolders=boolean

如果設為 true (預設值),連接器在檢索資料夾時會建立 CONTAINER_ITEM 物件。如果設為 false,連接器會改為建立 VIRTUAL_CONTAINER_ITEM 物件。

啟用檔案系統變更監控功能 fs.monitorForUpdates=boolean

如果設為 true (預設),內容或存取權控管的變更會觸發連接器重新檢索。關閉監控功能 (設為 false) 可大幅減少連接器的資源用量,但連接器反映變更的時間會延遲。

設定目錄快取大小上限 fs.directoryCacheSize=number-of-entries

目錄快取的大小上限。連接器會使用快取識別隱藏資料夾,避免為隱藏資料夾中的檔案和資料夾建立索引。

預設值為 50,000 個項目,通常會耗用 10 到 15 MB 的 RAM。

保留時間戳記和檢索控制

設定 參數
保留上次存取時間戳記 fs.preserveLastAccessTime=value

當連接器檢索檔案和資料夾時,可能會將檔案和資料夾的上次存取時間戳記變更為檢索時間。如果系統未保留上次存取時間,備份和封存系統可能會因為連接器造訪,而無法將適當的檔案和資料夾移至次要儲存空間。

根據預設,連接器會嘗試保留上次存取時間 (fs.preserveLastAccessTime 設為 ALWAYS)。如果遍歷使用者沒有足夠的檔案屬性寫入權限,連接器可能無法還原檔案的上次存取時間。如果設為 ALWAYS,連接器會拒絕檔案系統的檢索要求,以免變更檔案的上次存取時間戳記。

可能的類型包括:

  • ALWAYS:連接器會盡量保留上次存取時間,同時檢索檔案和資料夾。如果連接器第一次無法保留上次存取時間,就會拒絕後續所有檔案系統的檢索要求,避免變更上次存取時間戳記。
  • IF_ALLOWED:連接器會盡量保留上次存取時間,同時檢索檔案和資料夾。即使部分時間戳記可能無法保留,系統仍會繼續檢索。
  • NEVER:連接器在檢索檔案和資料夾時,不會嘗試保留上次存取時間。
僅檢索在特定日期後存取的檔案 fs.lastAccessedDate=YYYY-MM-DD

只有在上次存取時間晚於指定日期時,才檢索內容。預設值為 disabled

請以 ISO8601 日期格式 (YYYY-MM-DD) 指定日期。舉例來說,如果值為 2010-01-01,連接器只會檢索 2010 年初之後存取的內容。

如果您指定 fs.lastAccessedDate,則無法同時為 fs.lastAccessedDays 設定值。

僅檢索在過去幾天內存取的檔案 fs.lastAccessedDays=number-of-days

只有在上次存取時間是目前日期前幾天內,才會檢索內容。預設值為 disabled

使用這項屬性可讓一段時間未存取的先前索引內容過期。舉例來說,如果設為 365,系統只會檢索過去一年內存取的內容。

如果您指定 fs.lastAccessedDays,則無法同時為 fs.lastAccessedDate 設定值。

只檢索在特定日期之後修改的檔案 fs.lastModifiedDate=YYYY-MM-DD

只有在上次修改時間晚於指定日期時,才檢索內容。預設值為 disabled

請以 ISO8601 日期格式 (YYYY-MM-DD) 指定日期。舉例來說,如果值為 2010-01-01,連接器只會檢索 2010 年初之後修改的內容。

如果您指定 fs.lastModifiedDate,則無法同時為 fs.lastModifiedDays 設定值。

只檢索在過去幾天內修改的檔案 fs.lastModifiedDays=number-of-days

只有在上次修改時間是目前日期前幾天內時,才檢索內容。預設值為 disabled

如果先前編入索引的內容已有一段時間未修改,您可以使用這項屬性讓內容過期。舉例來說,如果設為 365,系統只會檢索過去一年內修改過的內容。

如果您指定 fs.lastModifiedDays,則無法同時為 fs.lastModifiedDate 設定值。

略過檔案共用存取權控管

根據預設,連接器會將存取控制清單 (ACL) (包括檔案共用中的 ACL) 傳送至 Indexing API,藉此維護存取控制完整性。不過,在某些設定中,連接器可能沒有足夠的權限讀取共用 ACL。在這種情況下,連接器不會在搜尋結果中傳回該檔案共用空間中維護的任何檔案。

您可以將連接器設為忽略共用 ACL,這樣搜尋結果一律會傳回內容。在這種情況下,索引 API 會取得完全寬鬆的共用 ACL,而非實際的共用 ACL。

設定 參數
略過檔案共用存取權控管 fs.skipShareAccessControl=boolean

設為 false (預設) 可強制執行共用 ACL。設為 true 即可忽略共用 ACL。