部署 Microsoft Windows File Systems 連接器

您可以設定 Google Cloud Search,除了 Google Workspace 內容,也從貴機構的 Microsoft Windows 共用資料夾傳回搜尋結果。您可以使用 Cloud Search File Systems 連接器,並設定該連接器來存取指定的 Windows 共用資料夾。單一連接器執行個體可支援多個 Microsoft Windows 共用資料夾。

重要注意事項

部署檔案系統連接器前,請先詳閱下列注意事項。

持續自動更新

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

DFS 存取控管

DFS 系統會對連結套用存取控管,通常每個 DFS 連結都有自己的 ACL。DFS 會使用以存取權為依據的列舉 (ABE),限制傳回給使用者的連結。當 ABE 隔離主目錄時,使用者可能只會看到部分 DFS 連結或只有一個連結。在 DFS 系統中遍歷時,連接器會遵守 DFS 連結 ACL 和目標的共用 ACL;共用 ACL 會從 DFS ACL 繼承。

已知限制

本節列出檔案系統連接器的已知限制。

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

系統需求

部署 File Systems 連接器前,請確認主機符合下列需求:

系統需求
作業系統
  • Windows Server 2016
  • Windows Server 2012
  • Windows Server 2008 R2
軟體
  • 在執行連接器的電腦上安裝 Java JRE 1.8
檔案系統通訊協定
  • 伺服器訊息區塊 (SMB) - SMB1
  • 伺服器訊息區塊 (SMB) - SMB2
  • 分散式檔案系統 (DFS)

不支援:本機 Windows 檔案系統、NFS 2.0、NFS 3.0 或本機 Linux 檔案系統。

部署連接器

請按照下列步驟部署 File Systems 連接器。

必要條件

部署連接器前,請確認環境具備下列元件:

Microsoft Windows 帳戶的必要權限

執行連接器的 Windows 帳戶必須具備下列權限:

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

加入下列任一群組通常會授予足夠的權限:管理員、進階使用者、列印作業員或伺服器作業員。

步驟 1:安裝連接器

從 GitHub 下載或複製連接器存放區,然後建構連接器套件。

  1. 從 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

    如要直接下載,請按照下列步驟操作:

    1. 前往 windows-filesystems-connector
    2. 依序點選「Clone or download」 >「Download zip」
    3. 解壓縮套件,然後移至目錄。
  2. 使用 Apache Maven 建構連接器:

    > mvn package
    如要略過測試,請使用 mvn package -DskipTests

  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. 以鍵/值組合形式新增參數。例如:

    # Required parameters
    api.serviceAccountPrivateKeyFile=/path/to/file.json
    api.sourceId=0123456789abcde
    api.identitySourceId=a1b1c1234567
    
    # File system access
    fs.src=\\\\host\\share;\\\\dfshost\\dfsnamespace
    
    # Optional parameters
    traverse.abortAfterExceptions=500
    fs.monitorForUpdates = true
    fs.preserveLastAccessTime = IF_ALLOWED
    

    如需檔案系統專屬參數,請參閱設定參數參考資料。如需所有 Cloud Search 連接器使用的常見參數清單,請參閱「Google 提供的連接器參數」。

步驟 3:啟用記錄功能

建立記錄目錄,並建立記錄設定檔。

  1. 在連接器目錄中建立名為 logs 的資料夾。
  2. 建立名為 logging.properties 的檔案,其中含有下列內容:

    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:(選用) 設定媒體類型

連接器會嘗試使用預設機制偵測檔案媒體類型,而這項機制在 Windows 上會依據登錄項目。如果缺少檔案副檔名的登錄項目,連接器可能無法正確偵測媒體類型。如果系統未正確偵測媒體類型,或您想覆寫擴充功能的預設類型,請按照下列步驟操作:

  1. 在連接器目錄中建立名為 mime-type.properties 的檔案。
  2. extension=media/type 格式輸入擴充功能和類型: properties 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 的設定檔。如果設定檔的名稱不同或位於其他目錄,請使用 -Dconfig 參數指定路徑。

設定參數參考資料

下表列出並說明用於設定檔案系統連接器的參數。

資料來源存取權

設定 參數
資料來源 ID api.sourceId=1234567890abcdef

必填。Cloud Search 來源 ID。

服務帳戶 api.serviceAccountPrivateKeyFile=./PrivateKey.json

必填。服務帳戶金鑰檔案的路徑。

識別資訊來源 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 即可檢索隱藏檔案。預設值為 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

只有在上次存取時間晚於指定日期時,才檢索內容 (YYYY-MM-DD,ISO8601 格式)。預設值為 disabled。舉例來說,2010-01-01 會檢索 2010 年初之後存取的內容。無法與 fs.lastAccessedDays 搭配使用。

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

只有在上次存取時間距離現在不超過指定天數時,才檢索內容。預設值為 disabled。適用於過期舊內容,例如 365 會檢索過去一年存取的內容。無法與 fs.lastAccessedDate 搭配使用。

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

只有在上次修改時間晚於指定日期時,才檢索內容 (YYYY-MM-DD,ISO8601 格式)。預設值為 disabled。舉例來說,2010-01-01 會在 2010 年初之後,無法與 fs.lastModifiedDays 搭配使用。

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

只有在上次修改時間距離現在不超過指定天數時,才檢索內容。預設值為 disabled。適用於過期舊內容,例如 365 會檢索過去一年內修改的內容。無法與 fs.lastModifiedDate 搭配使用。

略過檔案共用 ACL

如果連接器沒有讀取共用 ACL 的權限,可以將其設為忽略共用 ACL。接著,系統會傳回內容,並附上允許分享的 ACL。

設定 參數
略過共用 ACL fs.skipShareAccessControl=boolean

設為 true 即可忽略共用 ACL。預設值為 false