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ệp chia sẻ trên Microsoft Windows của tổ chức ngoài nội dung của bạn 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 phần chia sẻ Windows đã chỉ định. Một thực thể trình kết nối có thể hỗ trợ nhiều tệp 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 (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 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 thông tin 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ể việc sử dụng tài nguyên của trình kết nối nhưng sẽ trì hoãn 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 kiểm soát truy cập trên các liên kết của hệ thống và thường mỗi liên kết DFS 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 số Đường liên kết đến DFS, hoặc thậm chí chỉ nhận được 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 tuân theo Danh sách kiểm soát quyền truy cập (ACL) của đường 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, đồng thời, Danh sách kiểm soát quyền truy cập (ACL) chia sẻ kế thừa từ Danh sách kiểm soát quyền truy cập 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ợ ổ đĩa đã liên kết và ổ trên máy.
  • Hệ thống tệp được phân phối: Ổ đĩa được ánh xạ tới 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ợ các không gian tên và đường liên kết của Hệ thống tệp được phân phối (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 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 trả về trên Cloudsearch.google.com đều không nhấp vào được. Trong hầu hết các trình duyệt, bạn cũng không thể nhấp vào các đường liên kết tệp do API Truy vấn trả về.

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

Yêu cầu về hệ thống
Hệ điều hành
  • Windows Server 2016
  • Windows Server 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 tán (DFS)

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

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 trên đám mây, 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 đây:

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 tài liệu
  • Đọc cá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 các quyền cơ bản đối với thuộc tính

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

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

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

  1. Lấy kho lưu trữ trình kết nối trên GitHub và tạo bản dựng.

    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 trình kết nối mong muốn:

      > git checkout tags/v1-0.0.3

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

    1. Truy cập 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 này.
    4. Chuyển đến 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 các lượt 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 trên máy:

    > 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 thư mục cài đặt trình kết nối, hãy tạo một tệp rồi đặt tên tệp đó là connector-config.properties.

  2. Thêm 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 thông số, hãy chuyển đến 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ố trình kết nối khác nếu cần. Để biết thông tin chi tiết, hãy xem bài viết Thông 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 của trình kết nối.
  2. Tạo một 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 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 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 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 cho 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 sẽ ghi đè mọi liên kết hiện có hoặc ngăn 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 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 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 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ợ 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á 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 dưới dạng một hoặc nhiều nguồn UNC được phân tách bằng dấu phân tá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 trong Java Unicode.

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, thì 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 của bạn và không được đặt trước theo cú pháp của tệp thuộc tính.

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 đơn.

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 những người dùng đã thiết lập bằng 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 duy nhất của Active Directory.

Bao gồm tài khoản trong Danh sách kiểm soát quyền truy cập (ACLS) 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 các tài khoản tích hợp sẵn. 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 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 thông tin các tệp và thư mục ẩn (trên hệ thống tệp của Windows, một tệp hoặc thư mục sẽ được coi là bị ẩ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 danh sách thư mục được thu thập thông tin và liệt kê Không gian tên DFS fs.indexFolders=boolean

Khi bạn đặt thành true (mặc định), khi trình kết nối 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 chính sách này thành false, trình kết nối sẽ tạo đối tượng VIRTUAL_CONTAINER_ITEM.

Bật tính năng giám sát thay đổi của 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 điểm trình kết nối phản ánh các thay đổi.

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

Dung lượng 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 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 định là 50.000 mục, thường sử dụng 10-15 megabyte RAM.

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

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

Khi trình kết nối thu thập thông tin 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 tệp và thư mục thành thời điểm thu thập thông tin. Khi không lưu giữ thời gian truy cập gần đây nhất, 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 lưu giữ 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 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 thông tin đối với hệ thống tệp để không làm thay đổi dấu thời gian truy cập gần đây nhất của 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 lưu giữ lần truy cập gần đây nhất khi thu thập thông tin tệp và thư mục. Trong lần đầu tiên trình kết nối không thể lưu giữ lần truy cập sau cùng, 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 để 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 lưu giữ lần truy cập gần đây nhất khi thu thập thông tin tệp và thư mục. Tệp này sẽ 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 giữ nguyên.
  • NEVER: Trình kết nối không cố lưu giữ lần truy cập gần đây nhất khi thu thập thông tin 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 đây nhất sau ngày được chỉ định. Giá trị mặc định là disabled.

Hãy 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 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 sẽ 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 số ngày qua fs.lastAccessedDays=number-of-days

Chỉ thu thập thông tin nội dung nếu lần truy cập gần đây nhất nằm trong khoảng 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 đã lập chỉ mục trước đó mà trong một thời gian dài chưa được truy cập. Ví dụ: bạn đặt thành 365 để chỉ thu thập thông tin nội dung nếu nội dung đó được truy cập vào năm ngoái.

Nếu chỉ định fs.lastAccessedDays, bạn cũng sẽ 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 gần đây nhất sau ngày được chỉ định. Giá trị mặc định là disabled.

Hãy 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 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 sẽ 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 vài 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 lần cuối nằm trong khoảng số ngày trước thời điểm hiện tại. Giá trị mặc định là disabled.

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

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

Bỏ qua kiểm soát quyền truy cập để chia sẻ tệp

Theo mặc định, trình kết nối duy trì tính toàn vẹn của chức năng 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) tới 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) chia sẻ. 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 phần chia sẻ tệp trong kết quả tìm kiếm.

Bạn có thể đặt 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 được phép thay vì nhận được ACL chia sẻ thực tế.

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

Đặt thành false (mặc định) để thực thi các Danh sách kiểm soát quyền truy cập (ACL) dùng chung. Đặt thành true để bỏ qua các ACL dùng chung.