Triển khai trình kết nối Hệ thống tệp của Microsoft Windows

Bạn có thể thiết lập Google Cloud Search để trả về các kết quả từ các tệp chia sẻ Microsoft Windows của tổ chức ngoài nội dung trên Google Workspace. Bạn sử dụng trình kết nối Hệ thống tệp Google Cloud Search và định cấu hình trình kết nối này để truy cập vào các tệp chia sẻ trên Windows được chỉ định. Một bản sao trình kết nối có thể hỗ trợ nhiều tệp Microsoft Windows chia sẻ.

Điểm quan trọng cần lưu ý

Tự động cập nhật liên tục

Theo mặc định, trình kết nối liên tục theo dõi các đường dẫn bắt đầu (các giá trị từ fs.src trong tệp cấu hình trình kết nối) khi trình kết nối khởi động. Khi hệ thống tệp báo cáo có thay đổi đối với nội dung hoặc chế độ kiểm soát quyền truy cập, trình kết nối được kích hoạt để thu thập lại thông tin hệ thống tệp. Việc thu thập lại dữ liệu này có thể tốn nhiều tài nguyên. Để tắt tính năng giám sát hệ thống tệp, hãy đặt fs.monitorForUpdates thành false. Bạn sẽ giảm đáng kể mức sử dụng tài nguyên của trình kết nối, nhưng độ trễ khi trình kết nối phản ánh các thay đổi. Tìm hiểu thêm

Kiểm soát quyền truy cập DFS

Hệ thống DFS áp dụng biện pháp kiểm soát quyền truy cập trên các đường liên kết và mỗi đường liên kết DFS thường có Danh sách kiểm soát quyền truy cập (ACL) riêng. Một cơ chế mà DFS sử dụng là Liệt kê dựa trên quyền truy cập (ABE). Cơ chế này có thể hạn chế các đường liên kết DFS được trả về cho người dùng. Người dùng có thể chỉ nhận được một phần nhỏ các Đường liên kết DFS hoặc thậm chí chỉ một đường liên kết khi ABE tách biệt các thư mục gốc được lưu trữ. Khi trình kết nối truyền tải hệ thống DFS, trình kết nối sẽ tuân theo ACL liên kết DFS và Danh sách kiểm soát quyền truy cập (ACL) chia sẻ của mục tiêu, cũng như danh sách kiểm soát quyền truy cập (Chia sẻ ACL) kế thừa từ ACL của DFS.

Các hạn chế đã biết

  • Hệ thống tệp: Trình kết nối Hệ thống tệp không hỗ trợ các ổ đĩa được ánh xạ và ổ đĩa cục bộ.
  • Hệ thống tệp phân phối: Ổ đĩa đã được ánh xạ đến DFS UNC không hoạt động chính xác. Một số ACL không được đọc chính xác.
  • Trình kết nối Hệ thống tệp hỗ trợ không gian tên và liên kết Hệ thống tệp phân phối (DFS). Tuy nhiên, trình kết nối chỉ hỗ trợ đường liên kết DFS trong không gian tên DFS, chứ không hỗ trợ các thư mục thông thường trong không gian tên DFS.
  • Những đường liên kết đến tệp được trả về trong Cloudsearch.google.com không cho phép nhấp vào. Các đường liên kết tệp mà API truy vấn trả về cũng không thể nhấp vào được trong hầu hết các trình duyệt.

Yêu cầu về hệ thống

Yêu cầu về hệ thống
Hệ điều hành
  • Máy chủ Windows 2016
  • Máy chủ Windows 2012
  • Máy chủ Windows 2008 R2
Phần mềm
  • Java JRE 1.8 được cài đặt trên máy tính sẽ chạy trình kết nối Hệ thống tệp Google Cloud Search
Giao thức hệ thống tệp
  • Khối thông báo máy chủ (SMB) – SMB1
  • Khối thông báo máy chủ (SMB) – SMB2
  • Hệ thống tệp phân phối (DFS)

Không được hỗ trợ: Hệ thống tệp Windows cục bộ, Hệ thống tệp Sun Network (NFS) 2.0, Hệ thống tệp Sun Network (NFS) 3.0 hoặc hệ thống tệp Linux cục bộ.

Triển khai trình kết nối

Điều kiện tiên quyết

Trước khi bạn triển khai trình kết nối Hệ thống tệp Cloud Search, hãy đảm bảo rằng môi trường của bạn có tất cả các thành phần điều kiện tiên quyết sau đây:

Các quyền bắt buộc đối với tài khoản Microsoft Windows

Tài khoản Microsoft Windows mà trình kết nối đang chạy phải có đủ quyền để thực hiện các thao tác sau:

  • Liệt kê nội dung của các thư mục
  • Đọc nội dung của tài liệu
  • Đọc thuộc tính của tệp và thư mục
  • Quyền đọc (ACL) cho cả tệp và thư mục
  • Quyền ghi thuộc tính cơ bản

Thành viên thuộc một trong các nhóm sau đây sẽ cấp cho tài khoản Windows đủ các quyền cần thiết mà trình kết nối cần:

  • Quản trị viên
  • Người dùng thành thạo
  • Nhà cung cấp dịch vụ in
  • Toán tử máy chủ

Bước 1. Cài đặt trình kết nối Hệ thống tệp của Google Cloud Search

  1. Lấy kho lưu trữ trình kết nối từ GitHub và tạo kho lưu trữ đó.

    Cách sử dụng git trên máy chủ Windows:

    1. Sao chép kho lưu trữ:

      > git clone https://github.com/google-cloudsearch/windows-filesystems-connector.git
      > cd windows-filesystems-connector
    2. Kiểm tra phiên bản mong muốn của trình kết nối:

      > git checkout tags/v1-0.0.3

    Cách tải trực tiếp xuống qua GitHub:

    1. Truy cập vào https://github.com/google-cloudsearch/windows-filesystems-connector.
    2. Nhấp vào Sao chép hoặc tải xuống Tải xuống dưới dạng zip.
    3. Giải nén gói.
    4. Chuyển sang thư mục mới:
      > cd windows-filesystems-connector
  2. Xây dựng trình kết nối. Nếu cần, hãy cài đặt Apache Maven.

    > mvn package

    Để bỏ qua quá trình kiểm thử khi bạn tạo trình kết nối, hãy chạy mvn package -DskipTests thay vì mvn package.

  3. Sao chép tệp zip của trình kết nối vào thư mục cài đặt cục bộ của bạn:

    > 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

Bước 2. Tạo tệp cấu hình trình kết nối

  1. Trong cùng thư mục với quá trình cài đặt trình kết nối, hãy tạo một tệp và đặt tên tệp là connector-config.properties.

  2. Thêm thông số dưới dạng cặp khoá/giá trị vào nội dung tệp, như trong ví dụ sau:

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

    Để biết nội dung mô tả chi tiết về từng thông số, hãy xem tài liệu tham khảo về thông số cấu hình.

  3. (Không bắt buộc) Định cấu hình các thông số khác của trình kết nối, nếu cần. Để biết thông tin chi tiết, hãy chuyển đến bài viết Tham số trình kết nối do Google cung cấp.

Bước 3. Bật tính năng ghi nhật ký

  1. Tạo một thư mục có tên logs trong thư mục chứa tệp nhị phân trình kết nối.
  2. Tạo tệp ASCII hoặc UTF-8 có tên logging.properties trong thư mục chứa tệp nhị phân của trình kết nối và thêm nội dung sau:

    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
    

Bước 4. (Không bắt buộc) Định cấu hình các loại nội dung nghe nhìn

Theo mặc định, trình kết nối cố gắng phát hiện loại nội dung nghe nhìn cho từng tệp bằng tính năng JDK phát hiện loại nội dung nghe nhìn. Trên Microsoft Windows, JDK dựa vào sổ đăng ký của Windows để xác định loại nội dung nghe nhìn cho tệp. Việc thiếu mục nhập đăng ký có thể dẫn đến một loại nội dung nghe nhìn rỗng cho một số tệp.

Nếu cần, bạn có thể chỉ định một loại nội dung nghe nhìn để ghi đè mọi đường liên kết hiện có hoặc ngăn chặn một loại nội dung nghe nhìn rỗng.

  1. Trong thư mục trình kết nối, hãy tạo một tệp mã hoá Latinh-1 có tên là mime-type.properties.
  2. Nhập đuôi tệp và loại phương tiện tương ứng như trong các ví dụ sau:

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

Bước 5: Chạy trình kết nối Hệ thống tệp

Sau khi bạn cài đặt và định cấu hình trình kết nối Hệ thống tệp, để chạy trình kết nối này trên máy chủ, hãy chạy lệnh như ví dụ sau:

> java -jar google-cloudsearch-windows-filesystems-connector-v1-0.0.3.jar -Djava.util.logging.config.file=logging.properties[ -Dconfig=my.config]

Chỉ định đường dẫn tệp cấu hình nếu đường dẫn này khác với đường dẫn mặc định (trong cùng thư mục với tệp nhị phân có tên connector-config.properties).

Tài liệu tham khảo về thông số cấu hình

Truy cập nguồn dữ liệu

Xem xét Thông số
Mã nguồn dữ liệu api.sourceId=1234567890abcdef

Bắt buộc. Mã nguồn trên Google Cloud Search do quản trị viên Google Workspace thiết lập.

Đường dẫn đến tệp khoá riêng tư của tài khoản dịch vụ api.serviceAccountPrivateKeyFile=./PrivateKey.json

Bắt buộc. Tệp khoá tài khoản dịch vụ Google Cloud Search dành cho khả năng tiếp cận của trình kết nối Hệ thống tệp Google Cloud Search.

Mã nguồn nhận dạng api.identitySourceId=x0987654321

Bắt buộc. Mã nguồn nhận dạng trên Cloud Search do quản trị viên Google Workspace thiết lập để đồng bộ hoá các danh tính trong thư mục đang hoạt động bằng GCDS.

Quyền truy cập vào hệ thống tệp

Xem xét Thông số
Hệ thống tệp nguồn fs.src=path1[,path2, ...]

Bắt buộc. Chỉ định hệ thống tệp nguồn làm một hoặc nhiều nguồn UNC được phân tách bằng dấu phân cách do fs.src.separator định cấu hình. Nếu bạn sử dụng các ký tự không có trong Latin1, hãy mã hoá các ký tự đó bằng các ký tự thoát Java Unicode.

Ký tự dấu phân cách đường dẫn

Xem xét Thông số
Ký tự dấu phân cách đường dẫn fs.src.separator=separator-character

Dấu phân cách mặc định là ";". Nếu đường dẫn nguồn của bạn chứa dấu chấm phẩy, bạn có thể đặt dấu phân cách khác, chẳng hạn như dấu phẩy (","), không xung đột với các ký tự trong đường dẫn và không được chính cú pháp tệp thuộc tính dành riêng.

Nếu giá trị fs.src.separator là một chuỗi trống, thì giá trị fs.src được coi là một đường dẫn duy nhất.

Hành vi của trình kết nối

Xem xét Thông số
Miền Windows fs.supportedDomain=domain

Bắt buộc phải cho phép người dùng đã thiết lập GCDS truy cập vào tài liệu thông qua Cloud Search. Chỉ định làm một tên miền NetBIOS của Active Directory.

Đưa các tài khoản vào danh sách kiểm soát quyền truy cập (ACL) fs.supportedAccounts=account-1[, account-2,...]

Danh sách các tài khoản được phân tách bằng dấu phẩy để đưa vào ACL bất kể chúng có phải là tài khoản tích hợp hay không.

Giá trị mặc định là BUILTIN\\Administrators,Everyone,BUILTIN\\Users, BUILTIN\\Guest,NT AUTHORITY\\INTERACTIVE, NT AUTHORITY\\Authenticated Users

Loại trừ tài khoản tích hợp khỏi ACL fs.builtinGroupPrefix=prefix

Chỉ định tiền tố của tài khoản tích hợp. Tài khoản bắt đầu bằng tiền tố này được xem là tài khoản được tích hợp và sẽ bị loại trừ khỏi các ACL.

Giá trị mặc định là BUILTIN\\

Cho phép lập chỉ mục các tệp và thư mục ẩn fs.crawlHiddenFiles=boolean

Đặt thành true để cho phép trình kết nối thu thập dữ liệu các tệp và thư mục ẩn (trên các hệ thống tệp Windows, một tệp hoặc thư mục được coi là ẩn nếu thuộc tính ẩn của DOS được đặt). Giá trị mặc định là false.

Cho phép lập chỉ mục danh sách thư mục được thu thập dữ liệu và giá trị liệt kê của Không gian tên DFS fs.indexFolders=boolean

Khi đặt thành true (mặc định), khi thu thập thông tin một thư mục, trình kết nối sẽ tạo một đối tượng CONTAINER_ITEM. Khi bạn đặt thành false, trình kết nối sẽ tạo một đối tượng VIRTUAL_CONTAINER_ITEM.

Bật tính năng giám sát thay đổi hệ thống tệp fs.monitorForUpdates=boolean

Khi bạn đặt thành true (mặc định), các thay đổi đối với nội dung hoặc chế độ kiểm soát quyền truy cập sẽ kích hoạt trình kết nối thu thập lại dữ liệu. Khi tắt tính năng giám sát (đặt thành false), bạn sẽ giảm đáng kể mức sử dụng tài nguyên của trình kết nối, nhưng sẽ trì hoãn thời gian trình kết nối phản ánh các thay đổi.

Đặt kích thước tối đa của bộ nhớ đệm cho các thư mục fs.directoryCacheSize=number-of-entries

Dung lượng tối đa của bộ nhớ đệm của thư mục. Trình kết nối sử dụng bộ nhớ đệm để xác định các thư mục ẩn nhằm tránh lập chỉ mục các tệp và thư mục trong các thư mục ẩn.

Mặc định là 50.000 mục, thường tiêu thụ 101015 megabyte RAM.

Lưu giữ dấu thời gian và kiểm soát hoạt động thu thập thông tin

Xem xét Thông số
Giữ nguyên dấu thời gian của lần truy cập gần nhất fs.preserveLastAccessTime=value

Khi trình kết nối thu thập thông tin về tệp và thư mục, trình kết nối có thể thay đổi dấu thời gian của lần truy cập gần đây nhất của tệp và thư mục tới thời điểm thu thập thông tin. Khi thời gian truy cập gần đây nhất không được duy trì, các hệ thống sao lưu và lưu trữ có thể không di chuyển các tệp và thư mục thích hợp sang bộ nhớ phụ do trình kết nối đã truy cập.

Theo mặc định, trình kết nối cố gắng duy trì thời gian truy cập gần đây nhất (fs.preserveLastAccessTime được đặt thành ALWAYS). Trình kết nối không thể khôi phục thời gian truy cập gần đây nhất vào tệp khi người dùng truyền tải không có đủ đặc quyền để ghi thuộc tính tệp. Khi bạn đặt thành ALWAYS, trình kết nối sẽ từ chối các yêu cầu thu thập dữ liệu cho hệ thống tệp để không làm thay đổi dấu thời gian của lần truy cập gần đây nhất của các tệp.

Các loại tệp có thể được thu thập dữ liệu bao gồm:

  • ALWAYS: Trình kết nối cố gắng duy trì thời gian truy cập gần đây nhất khi thu thập thông tin các tệp và thư mục. Lần đầu tiên trình kết nối không thể lưu giữ thời gian truy cập gần đây nhất, trình kết nối sẽ từ chối tất cả các yêu cầu thu thập thông tin tiếp theo đối với hệ thống tệp nhằm ngăn việc thay đổi dấu thời gian của lần truy cập gần đây nhất.
  • IF_ALLOWED: Trình kết nối cố gắng duy trì thời gian truy cập gần đây nhất khi thu thập thông tin các tệp và thư mục. Hệ thống sẽ tiếp tục thu thập dữ liệu ngay cả khi một số dấu thời gian có thể không được lưu giữ.
  • NEVER: Trình kết nối không cố gắng duy trì thời gian truy cập gần đây nhất khi thu thập thông tin các tệp và thư mục.
Chỉ thu thập thông tin các tệp được truy cập sau một ngày nhất định fs.lastAccessedDate=YYYY-MM-DD

Chỉ thu thập thông tin nội dung nếu thời gian truy cập gần nhất là sau ngày đã chỉ định. Giá trị mặc định là disabled.

Chỉ định ngày theo định dạng ngày ISO8601: YYYY-MM-DD. Ví dụ: nếu giá trị là 2010-01-01, trình kết nối chỉ thu thập thông tin nội dung được truy cập sau đầu năm 2010.

Nếu chỉ định fs.lastAccessedDate, bạn cũng không thể đặt giá trị cho fs.lastAccessedDays.

Chỉ thu thập thông tin các tệp đã được truy cập trong vòng một ngày qua fs.lastAccessedDays=number-of-days

Chỉ thu thập thông tin nội dung nếu thời gian truy cập gần đây nhất nằm trong khoảng số ngày trước đó. Giá trị mặc định là disabled.

Hãy sử dụng thuộc tính này để làm hết hạn nội dung đã được lập chỉ mục trước đó mà trong một thời gian dài chưa có ai truy cập. Ví dụ: đặt thành 365 để chỉ thu thập thông tin nội dung nếu người dùng truy cập vào nội dung này trong năm ngoái.

Nếu chỉ định fs.lastAccessedDays, bạn cũng không thể đặt giá trị cho fs.lastAccessedDate.

Chỉ thu thập thông tin các tệp đã được sửa đổi sau một ngày nhất định fs.lastModifiedDate=YYYY-MM-DD

Chỉ thu thập thông tin nội dung nếu thời gian sửa đổi lần cuối sau ngày đã chỉ định. Giá trị mặc định là disabled.

Chỉ định ngày theo định dạng ngày ISO8601: YYYY-MM-DD. Ví dụ: nếu giá trị là 2010-01-01, trình kết nối chỉ thu thập thông tin nội dung đã được sửa đổi sau đầu năm 2010.

Nếu chỉ định fs.lastModifiedDate, bạn cũng không thể đặt giá trị cho fs.lastModifiedDays.

Chỉ thu thập thông tin các tệp đã được sửa đổi trong vòng ngày qua fs.lastModifiedDays=number-of-days

Chỉ thu thập thông tin nội dung nếu thời gian sửa đổi gần đây nhất nằm trong số ngày trước thời điểm hiện tại. Giá trị mặc định là disabled.

Sử dụng thuộc tính này để làm hết hạn nội dung đã được lập chỉ mục trước đó chưa được sửa đổi trong một thời gian. Ví dụ: đặt thành 365 để chỉ thu thập thông tin nội dung nếu nội dung này được sửa đổi vào năm ngoái.

Nếu chỉ định fs.lastModifiedDays, bạn cũng không thể đặt giá trị cho fs.lastModifiedDate.

Bỏ qua chế độ kiểm soát quyền truy cập vào việc chia sẻ tệp

Theo mặc định, trình kết nối giữ nguyên tính toàn vẹn của chế độ kiểm soát quyền truy cập khi gửi Danh sách kiểm soát quyền truy cập (ACL) đến API lập chỉ mục, bao gồm cả các ACL trong phần chia sẻ tệp. Tuy nhiên, trong một số cấu hình, trình kết nối có thể không có đủ quyền để đọc Danh sách kiểm soát quyền truy cập (ACL) dùng chung. Trong những trường hợp đó, trình kết nối không trả về bất kỳ tệp nào được duy trì trên tệp chia sẻ đó trong kết quả tìm kiếm.

Bạn có thể thiết lập trình kết nối bỏ qua ACL dùng chung để nội dung luôn được trả về trong kết quả tìm kiếm. Trong trường hợp này, API lập chỉ mục sẽ nhận được ACL chia sẻ hoàn toàn thoải mái, thay vì ACL chia sẻ thực tế.

Xem xét Thông số
Bỏ qua chế độ kiểm soát quyền truy cập vào việc chia sẻ tệp fs.skipShareAccessControl=boolean

Đặt thành false (mặc định) để thực thi các ACL chia sẻ. Đặt thành true để bỏ qua các ACL dùng chung.