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ề kết quả từ các tài nguyên dùng chung trên 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 của Google Cloud Search và định cấu hình trình kết nối đó để truy cập vào các phần chia sẻ Windows đã chỉ định. Một thực thể trình kết nối có thể hỗ trợ nhiều lượt chia sẻ trên Microsoft Windows.

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

Cập nhật tự động 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 (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á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 sẽ được kích hoạt để thu thập dữ liệu lại hệ thống tệp. Quá trình thu thập dữ liệu lại 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 giảm đáng kể mức sử dụng tài nguyên của trình kết nối nhưng bị chậm 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 tính năng kiểm soát quyền truy cập trên các đường liên kết và thường mỗi đường liên kết DFS đều có ACL riêng. Một cơ chế mà DFS sử dụng là Đếm 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 tập hợp con của Đườ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 đi qua một hệ thống DFS, trình kết nối sẽ tuân theo ACL đường liên kết DFS và ACL chia sẻ của mục tiêu, đồng thời ACL chia sẻ sẽ kế thừa từ ACL 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 liên kết và ổ cục bộ.
  • Distributed File System (Hệ thống tệp phân tán): Ổ được liên kết với UNC DFS không hoạt động đúng cách. 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ợ các đường liên kết và không gian tên của Hệ thống tệp phân tán (DFS). Tuy nhiên, trình kết nối chỉ hỗ trợ các đường liên kết DFS trong không gian tên DFS, chứ không phải các thư mục thông thường trong không gian tên DFS.
  • Bạn không thể nhấp vào các đường liên kết đến tệp được trả về trong cloudsearch.google.com. Đường liên kết đến tệp do Query API trả về cũng không thể nhấp được trong hầu hết các trình duyệt.

Yêu cầu hệ thống

Yêu cầu hệ thống
Hệ điều hành
  • Windows Server 2016
  • Windows Server 2012
  • Windows Server 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 của Google Cloud Search
Giao thức hệ thống tệp
  • Khối thông báo của máy chủ (SMB) – SMB1
  • Khối thông báo của máy chủ (SMB) – SMB2
  • Hệ thống tệp phân tán (DFS)

Không được hỗ trợ: Hệ thống tệp Windows cục bộ, Hệ thống tệp mạng Sun (NFS) 2.0, Hệ thống tệp mạng Sun (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 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 tiên quyết sau:

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 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
  • Ghi quyền đối với các thuộc tính cơ bản

Khi bạn là thành viên của một trong các nhóm sau, tài khoản Windows sẽ có đủ quyền mà trình kết nối cần:

  • Quản trị viên
  • Người dùng thành thạo
  • Toán tử 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. Tải 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. Hãy xem phiên bản của trình kết nối mà bạn muốn:

      > git checkout tags/v1-0.0.3

    Cách tải trực tiếp từ 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 tệp ZIP xuống.
    3. Giải nén gói.
    4. Di chuyển đến thư mục mới:
      > cd windows-filesystems-connector
  2. Tạo trình kết nối. Nếu cần, hãy cài đặt Apache Maven.

    > mvn package

    Để bỏ qua các bài kiểm thử khi 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ộ:

    > 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 là connector-config.properties.

  2. Thêm các tham 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 tham số, hãy xem tài liệu tham khảo về tham 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 xem phần Các tham số của 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 của trình kết nối.
  2. Tạo một tệp ASCII hoặc UTF-8 có tên là 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 loại nội dung nghe nhìn

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

Nếu cần, bạn có thể chỉ định một loại nội dung nghe nhìn ghi đè mọi liên kết hiện có hoặc ngă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 được mã hoá Latin-1 có tên là mime-type.properties.
  2. Nhập đuôi tệp và loại nội dung nghe nhì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 đó trên máy chủ, hãy chạy một 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 đó 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ề tham 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 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 để hỗ trợ tiếp cận trình kết nối Hệ thống tệp của Google Cloud Search.

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

Bắt buộc. Mã nguồn nhận dạng Cloud Search do quản trị viên Google Workspace thiết lập để đồng bộ hoá danh tính trong Active Directory 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ộ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 phải trong Latin1, hãy mã hoá các ký tự đó bằng ký tự thoát Unicode Java.

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

Xem xét Thông số
Ký tự 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 mộ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 bị 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 sẽ đượ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 để cho phép những người dùng được thiết lập bằng GCDS truy cập vào tài liệu thông qua Cloud Search. Chỉ định dưới dạng một tên miền NetBIOS của Active Directory.

Đưa tài khoản vào ACLS fs.supportedAccounts=account-1[, account-2,...]

Danh sách tài khoản được phân tách bằng dấu phẩy để đưa vào ACL, bất kể đó 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ừ các tài khoản tích hợp sẵn khỏi ACL fs.builtinGroupPrefix=prefix

Chỉ định tiền tố của các tài khoản tích hợp. Tài khoản bắt đầu bằng tiền tố này được coi là tài khoản tích hợp và sẽ bị loại trừ khỏi 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 thông tin về các tệp và thư mục ẩn (trên hệ thống tệp Windows, một tệp hoặc thư mục được coi là ẩn nếu bạn đặt thuộc tính ẩn DOS). Giá trị mặc định là false.

Cho phép lập chỉ mục trang thông tin thư mục đã thu thập dữ liệu và liệt kê Vùng tên DFS fs.indexFolders=boolean

Khi được đặt thành true (mặc định), khi trình kết nối thu thập dữ liệu một thư mục, trình kết nối sẽ tạo một đối tượng CONTAINER_ITEM. Khi được đặ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 theo dõi thay đổi hệ thống tệp fs.monitorForUpdates=boolean

Khi được đặ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 dữ liệu lại. 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ẽ bị chậm trễ khi 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 của thư mục fs.directoryCacheSize=number-of-entries

Kích thước tối đa của bộ nhớ đệm 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 thư mục ẩn.

Mức mặc định là 50.000 mục nhập, thường tiêu thụ 10–15 megabyte RAM.

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

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

Khi thu thập dữ liệu các tệp và thư mục, trình kết nối có thể thay đổi dấu thời gian truy cập gần đây nhất của các tệp và thư mục thành thời gian thu thập dữ liệu. Khi thời gian truy cập gần đây không được lưu giữ, 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 lượt truy cập của trình kết nối.

Theo mặc định, trình kết nối sẽ cố gắng giữ nguyên thời gian truy cập gần đây nhất (fs.preserveLastAccessTime được đặt thành ALWAYS). Trình kết nối có thể không khôi phục được thời gian truy cập gần đây nhất cho tệp khi người dùng truy cập không có đủ đặc quyền để ghi thuộc tính tệp. Khi được đặ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 thay đổi dấu thời gian 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 giữ nguyên thời gian truy cập gần đây nhất khi thu thập thông tin về 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 dữ liệu tiếp theo đối với hệ thống tệp để ngăn việc thay đổi dấu thời gian truy cập gần đây nhất.
  • IF_ALLOWED: Trình kết nối cố gắng giữ nguyên thời gian truy cập gần đây nhất khi thu thập thông tin về các tệp và thư mục. Công cụ này tiếp tục thu thập thông tin 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 lưu giữ thời gian truy cập gần đây nhất khi thu thập thông tin về các tệp và thư mục.
Chỉ thu thập dữ liệu 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 dữ liệu nội dung nếu thời gian truy cập gần đây nhất là sau ngày được 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, thì trình kết nối chỉ thu thập dữ liệu 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 dữ liệu về những tệp được truy cập trong một số ngày gần đây fs.lastAccessedDays=number-of-days

Chỉ thu thập nội dung nếu thời gian truy cập 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 để hết hạn nội dung đã được lập chỉ mục trước đó nhưng không được truy cập trong một thời gian. Ví dụ: đặt thành 365 để chỉ thu thập dữ liệu nội dung nếu nội dung đó được truy cập trong năm qua.

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

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

Chỉ thu thập dữ liệu nội dung nếu thời gian sửa đổi gần nhất là sau ngày được 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, thì trình kết nối chỉ thu thập dữ liệu 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 dữ liệu về những tệp được sửa đổi trong một số ngày gần đây fs.lastModifiedDays=number-of-days

Chỉ thu thập dữ liệu 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 để hết hạn nội dung đã được lập chỉ mục trước đó nhưng chưa được sửa đổi trong một thời gian. Ví dụ: đặt thành 365 để chỉ thu thập dữ liệu nội dung nếu nội dung đó được sửa đổi trong năm qua.

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 tính năng chia sẻ tệp

Theo mặc định, trình kết nối sẽ duy trì tính toàn vẹn của quyền kiểm soát 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ả ACL trên 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 ACL chia sẻ. Trong những trường hợp đó, trình kết nối sẽ không trả về bất kỳ tệp nào được duy trì trên phần chia sẻ tệp đó 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 chia sẻ để 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 cho phép, 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 tính năng chia sẻ tệp fs.skipShareAccessControl=boolean

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