部署 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 使用的其中一項機制是存取式 Enumeration (ABE),因此會限制傳回給使用者的 DFS 連結。使用者可能只會獲得一部分的 DFS 連結,或者在 ABE 隔離代管主目錄時只能取得一個連結。連接器週遊時,連接器會遵循 DFS 連結 ACL 和目標的共用 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 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:執行檔案系統連接器

安裝並設定檔案系統連接器,以便在主機電腦上啟動該連接器,如下所示:

> 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 File Systems 連接器無障礙功能。

識別資訊來源 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 網域名稱。

將帳戶納入 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:連接器會在檢索檔案和資料夾時保留上次存取時間。即使部分時間戳記未保留,Google 仍會持續檢索。
  • 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。