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 thư mục dùng chung của Microsoft Windows trong 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 này để truy cập vào các thư mục dùng chung được chỉ định trên Windows. Một phiên bản trình kết nối có thể hỗ trợ nhiều thư mục dùng chung của 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 giám sát các đường dẫn khởi động (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 quyền kiểm soát 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. 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 giảm đáng kể mức sử dụng tài nguyên của trình kết nối nhưng trì hoãn thời điểm 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 vào DFS

Hệ thống DFS áp dụng quyền kiểm soát truy cập trên các đường liên kết của hệ thống và thường thì mỗi đường liên kết DFS đều có 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ố ít Đườ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 chính được lưu trữ. Khi trình kết nối duyệt qua một hệ thống DFS, trình kết nối sẽ tuân theo ACL liên kết DFS và ACL chia sẻ của đích đến, đồ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ợ ổ đĩa được liên kết và ổ đĩa cục bộ.
  • Hệ thống tệp phân tán: Ổ đĩa được liên kết với một DFS UNC 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 không gian tên và đường liên kết của Hệ thống tệp phân tán (DFS). Tuy nhiên, trình kết nối này chỉ hỗ trợ các đường liên kết DFS trong một 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.
  • Bạn không thể nhấp vào đường liên kết đến tệp xuất hiện trên cloudsearch.google.com. Các đường liên kết đến tệp do Query API trả về cũng không thể nhấp vào 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 cục bộ của Windows, Hệ thống tệp mạng (NFS) 2.0 của Sun, Hệ thống tệp mạng (NFS) 3.0 của Sun hoặc Hệ thống tệp cục bộ của Linux.

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 Cloud Search File Systems, 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 các thư mục
  • Đọc nội dung của 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
  • Quyền ghi các thuộc tính cơ bản

Việc là thành viên của 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 yêu cầu:

  • Quản trị viên
  • Người dùng thành thạo
  • Nhân viên vận hành máy in
  • Nhà điều hành 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 trên 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 trình kết nối mong muốn:

      > git checkout tags/v1-0.0.3

    Cách tải xuống 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 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ộ:

    > 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ề các 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 các 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 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 các loại tệp đa phương tiện. Một mục đăng ký bị thiếu có thể dẫn đến loại phương tiệ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 để 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 được mã hoá bằng 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 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 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

Cài đặ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 để có thể truy cập vào 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

Cài đặt Thông số
Hệ thống tệp nguồn fs.src=path1[,path2, ...]

Bắt buộc. Chỉ định các 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 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 mã thoát Unicode của Java.

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

Cài đặ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 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 được cú pháp của 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

Cài đặt Thông số
Miền Windows fs.supportedDomain=domain

Bạn phải 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 duy nhất của Active Directory.

Thêm tài khoản vào 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 danh sách kiểm soát truy cập (ACL), bất kể đó là tài khoản tích hợp sẵn 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 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 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 dữ liệu 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 thuộc tính ẩn DOS được đặt). Giá trị mặc định là false.

Cho phép lập chỉ mục danh sách thư mục đã thu thập thông tin và các chế độ liệt kê Không gian 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 giám sát 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 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ẽ có độ 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 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 định là 50.000 mục, thường tiêu thụ 10 – 15 megabyte RAM.

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

Cài đặt Thông số
Giữ lại dấu thời gian truy cập gần đây nhất fs.preserveLastAccessTime=value

Khi thu thập dữ liệu tệp và thư mục, trình kết nối có thể thay đổi dấu thời gian truy cập lần gần nhất của 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 nhất không được giữ lại, 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ớ thứ cấp 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ữ lại 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 của tệp khi người dùng duyệt qua 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 thông tin cho hệ thống tệp để không làm thay đổi dấu thời gian truy cập lần cuối 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ữ lại thời gian truy cập gần đây nhất khi thu thập dữ liệu các tệp và thư mục. Lần đầu tiên trình kết nối không thể giữ lại 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 cho 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ữ lại thời gian truy cập gần đây nhất khi thu thập dữ liệu các tệp và thư mục. Công cụ này vẫn 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 giữ lại.
  • NEVER: Trình kết nối không cố gắng giữ lại thời gian truy cập gần đây nhất khi thu thập dữ liệu các tệp và thư mục.
Chỉ thu thập thông tin về những 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 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 khi bắt đầ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 về những tệp đã được truy cập trong số ngày qua fs.lastAccessedDays=number-of-days

Chỉ thu thập dữ liệu nội dung nếu thời gian truy cập gần 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 truy cập trong một thời gian. Ví dụ: đặt thành 365 để thu thập dữ liệu nội dung chỉ khi 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 thông tin 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 thông tin nội dung nếu thời gian sửa đổi sau cùng 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 khi bắt đầ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 những tệp đã được sửa đổi trong số ngày qua 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 để thu thập dữ liệu nội dung chỉ khi 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ệp được chia sẻ

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 thư mục dùng chung. 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 của thư mục dùng chung. 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 thư mục dùng chung đó 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 một ACL chia sẻ hoàn toàn cho phép, thay vì ACL chia sẻ thực tế.

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

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