部署 Microsoft Windows File Systems 連接器

除了 Google Workspace 內容之外,您也可以設定 Google Cloud Search,傳回貴機構的 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 和目標的 Share ACL,且 Share ACL 會沿用 DFS ACL。

已知限制

  • 檔案系統:File Systems 連接器不支援對應的磁碟機和本機磁碟。
  • Distributed File System:對應至 UNC DFS 的對應磁碟機無法正常運作。未正確讀取部分 ACL。
  • 檔案系統連接器支援分散式檔案系統 (DFS) 命名空間和連結。不過,連接器只能在 DFS 命名空間中支援 DFS 連結,而不支援 DFS 命名空間中的一般資料夾。
  • cloudsearch.google.com 中傳回的檔案連結無法點選。在大多數瀏覽器中,Query API 傳回的檔案連結都不可點擊。

系統需求

系統需求
作業系統
  • Windows Server 2016
  • Windows Server 2012
  • Windows Server 2008 R2
軟體
  • 已安裝 Java JRE 1.8 的電腦,以便執行 Google Cloud Search File Systems 連接器
檔案系統通訊協定
  • 伺服器訊息封鎖 (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:執行檔案系統連接器

安裝並設定檔案系統連接器之後,請在主體機器上啟動該連接器,如下所示:

> 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 管理員為使用 GCDS 同步處理有效目錄身分而設定的 Cloud Search 識別資訊來源 ID。

檔案系統存取權

設定 參數
來源檔案系統 fs.src=path1[,path2, ...]

必要欄位。將來源檔案系統指定為一或多個依 fs.src.separator 設定的分隔符號分隔的 UNC 來源。如果您使用非 Latin1 的字元,請以 Java Unicode 逸出方式對字元進行編碼。

路徑分隔符字元

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

預設分隔符為「;」。如果您的來源路徑包含分號,可以設定不會與路徑中的字元衝突,且不會由資源檔案語法本身保留的其他分隔符號,例如半形逗號 (")。

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

連接器行為

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

必須設定為允許透過 GCDS 設定的使用者透過 Cloud Search 存取文件。指定為 Active Directory 的單一 NetBIOS 網域名稱。

將帳戶納入 ACLS fs.supportedAccounts=account-1[, account-2,...]

以半形逗號分隔的帳戶清單,可用於存取 ACL,無論這些帳戶是否為內建帳戶。

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

從 ACL 排除內建帳戶 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) 傳送至索引 API (包括檔案共用區的 ACL) 時,會保留存取控制權的完整性。但在某些設定下,連接器可能沒有足夠的權限可讀取共用 ACL。在這種情況下,連接器不會在搜尋結果中傳回任何維護該檔案的檔案。

您可以設定連接器忽略共用 ACL,讓搜尋結果一律傳回內容。在這種情況下,Indexing API 可取得完全允許的共用 ACL,而非實際共用 ACL。

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

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