部署 Microsoft Windows File Systems 連接器

除了 Google Workspace 內容外,您可以設定 Google Cloud Search 傳回貴機構 Microsoft Windows 共用內容的結果。您可以使用 Google Cloud Search 檔案系統連接器,並將其設定為存取指定的 Windows 共用資料夾。單一連接器例項可支援多個 Microsoft Windows 共用項目。

重要事項

持續自動更新

根據預設,連接器會在啟動時持續監控啟動路徑 (連接器設定檔中 fs.src 的值)。當檔案系統回報內容或存取權控管變更時,系統會觸發連接器重新檢索檔案系統。這項重新檢索作業可能會耗用大量資源。如要關閉檔案系統監控功能,請將 fs.monitorForUpdates 設為 false。您可以大幅減少連接器的資源用量,但連接器反映變更的時間會延遲。瞭解詳情

DFS 存取權控管

DFS 系統會在連結上套用存取控制,且通常每個 DFS 連結都有自己的 ACL。DFS 使用的一種機制是以存取權為依據的列舉 (ABE),可限制傳回給使用者的 DFS 連結。使用者可能只會取得 DFS 連結的子集,甚至在 ABE 隔離代管的首頁目錄時,只會取得一個連結。連接器在遍歷 DFS 系統時,會遵循 DFS 連結 ACL 和目標的 Share ACL,而 Share ACL 則繼承自 DFS ACL。

已知限制

  • 檔案系統:檔案系統連接器不支援已對應的雲端硬碟和本機雲端硬碟。
  • 分散式檔案系統:已對應至 UNC DFS 的磁碟機無法正常運作。部分 ACL 無法正確讀取。
  • 檔案系統連接器支援分散式檔案系統 (DFS) 命名空間和連結。不過,連接器僅支援 DFS 命名空間中的 DFS 連結,不支援 DFS 命名空間中的一般資料夾。
  • 在 cloudsearch.google.com 中傳回的檔案連結無法點選。在大多數瀏覽器中,查詢 API 傳回的檔案連結也無法點選。

系統需求

系統需求
作業系統
  • Windows Server 2016
  • Windows Server 2012
  • Windows Server 2008 R2
軟體
  • 在要執行 Google Cloud Search 檔案系統連接器的電腦上安裝 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 檔案系統連接器前,請確認環境中已具備下列所有必要元件:

必要的 Microsoft Windows 帳戶權限

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

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

加入下列任一群組,即可授予 Windows 帳戶連接器所需的充分權限:

  • 管理員
  • 進階使用者
  • 列印運算子
  • 伺服器運算子

步驟 1:安裝 Google Cloud Search 檔案系統連接器

  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 的拉丁 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 管理員設定的 Cloud Search 身分識別資訊來源 ID,用於使用 GCDS 同步處理 Active Directory 身分。

檔案系統存取權

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

必要欄位。指定來源檔案系統為一或多個 UNC 來源,並以 fs.src.separator 所設定的分隔符號分隔。如果您使用非拉丁 1 的字元,請使用 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 兆位元組的 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,讓搜尋結果一律傳回內容。在這種情況下,索引 API 會取得完全許可的共用 ACL,而不是實際的共用 ACL。

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

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