chrome.syncFileSystem

Mô tả

Sử dụng API chrome.syncFileSystem để lưu và đồng bộ hoá dữ liệu trên Google Drive. API này KHÔNG dùng để truy cập vào các tài liệu tuỳ ý của người dùng được lưu trữ trong Google Drive. Nó cung cấp bộ nhớ có thể đồng bộ hoá dành riêng cho ứng dụng để sử dụng khi không có mạng và lưu vào bộ nhớ đệm, nhờ đó, cùng một dữ liệu có thể xuất hiện trên nhiều ứng dụng. Hãy đọc bài viết Quản lý dữ liệu để biết thêm thông tin về cách sử dụng API này.

Quyền

syncFileSystem

Loại

ConflictResolutionPolicy

Enum

"last_write_win"

"manual"

FileInfo

Thuộc tính

  • hành động

    SyncAction không bắt buộc

    Đã thực hiện thao tác đồng bộ hoá để kích hoạt sự kiện onFileStatusChanged. Giá trị của thao tác có thể là 'added', 'updated' hoặc 'deleted'. Chỉ áp dụng nếu trạng thái là 'synced'.

  • chỉ đường

    SyncDirection không bắt buộc

    Hướng đồng bộ hoá cho sự kiện onFileStatusChanged. Giá trị hướng đồng bộ hoá có thể là 'local_to_remote' hoặc 'remote_to_local'. Chỉ áp dụng nếu trạng thái là 'synced'.

  • fileEntry

    Mục nhập

    fileEntry cho tệp đích có trạng thái đã thay đổi. Chứa thông tin về tên và đường dẫn của tệp được đồng bộ hoá. Khi bạn xoá tệp, thông tin fileEntry vẫn sẽ có sẵn nhưng tệp sẽ không còn tồn tại nữa.

  • trạng thái

    Trạng thái tệp kết quả sau sự kiện onFileStatusChanged. Giá trị trạng thái có thể là 'synced', 'pending' hoặc 'conflicting'.

FileStatus

Enum

"đã đồng bộ hoá"
Không xung đột và không có thay đổi nào đang chờ xử lý trên máy.

"đang chờ xử lý"
Có một hoặc nhiều thay đổi cục bộ đang chờ xử lý chưa được đồng bộ hoá.

"xung đột"
Tệp xung đột với phiên bản từ xa và bạn phải giải quyết theo cách thủ công.

FileStatusInfo

Thuộc tính

  • error

    chuỗi không bắt buộc

    Lỗi không bắt buộc, chỉ được trả về nếu có vấn đề khi truy xuất FileStatus cho tệp đã cho.

  • fileEntry

    Mục nhập

    Một trong những Entry ban đầu được cung cấp cho getFileStatuses.

  • trạng thái

    Giá trị trạng thái có thể là 'synced', 'pending' hoặc 'conflicting'.

ServiceInfo

Thuộc tính

ServiceStatus

Enum

"đang khởi tạo"
Dịch vụ đồng bộ hoá đang được khởi tạo (ví dụ: khôi phục dữ liệu từ cơ sở dữ liệu, kiểm tra khả năng kết nối và xác thực với dịch vụ, v.v.).

"running"
Dịch vụ đồng bộ hoá đang hoạt động.

"authentication_required"
Dịch vụ đồng bộ hoá không đồng bộ hoá các tệp vì người dùng cần xác thực dịch vụ từ xa để tiếp tục.

"temporary_unavailable"
Dịch vụ đồng bộ hoá không đồng bộ hoá các tệp vì dịch vụ từ xa (tạm thời) không hoạt động do một số lỗi có thể khắc phục, ví dụ: mạng không hoạt động, dịch vụ từ xa ngừng hoạt động hoặc không truy cập được, v.v. Bạn nên cung cấp thêm thông tin chi tiết bằng tham số description trong OnServiceInfoUpdated (có thể chứa thông tin chi tiết dành riêng cho dịch vụ).

"disabled"
Dịch vụ đồng bộ hoá bị tắt và nội dung sẽ không bao giờ được đồng bộ hoá. (Ví dụ: điều này có thể xảy ra khi người dùng không có tài khoản trên dịch vụ từ xa hoặc dịch vụ đồng bộ hoá gặp phải một lỗi không thể khắc phục.)

StorageInfo

Thuộc tính

  • quotaBytes

    số

  • usageBytes

    số

SyncAction

Enum

"added"

"updated"

"deleted"

SyncDirection

Enum

"local_to_remote"

"remote_to_local"

Phương thức

getConflictResolutionPolicy()

Promise
chrome.syncFileSystem.getConflictResolutionPolicy(
  callback?: function,
)
: Promise<ConflictResolutionPolicy>

Lấy chính sách xử lý xung đột hiện tại.

Thông số

Giá trị trả về

  • Chrome 117 trở lên

    Các promise chỉ được hỗ trợ cho Manifest V3 trở lên, các nền tảng khác cần sử dụng lệnh gọi lại.

getFileStatus()

Promise
chrome.syncFileSystem.getFileStatus(
  fileEntry: Entry,
  callback?: function,
)
: Promise<FileStatus>

Trả về FileStatus cho fileEntry đã cho. Giá trị trạng thái có thể là 'synced', 'pending' hoặc 'conflicting'. Xin lưu ý rằng trạng thái 'conflicting' chỉ xảy ra khi chính sách giải quyết xung đột của dịch vụ được đặt thành 'manual'.

Thông số

  • fileEntry

    Mục nhập

  • callback

    hàm không bắt buộc

    Tham số callback có dạng như sau:

    (status: FileStatus) => void

Giá trị trả về

  • Promise<FileStatus>

    Chrome 117 trở lên

    Các promise chỉ được hỗ trợ cho Manifest V3 trở lên, các nền tảng khác cần sử dụng lệnh gọi lại.

getFileStatuses()

Promise
chrome.syncFileSystem.getFileStatuses(
  fileEntries: object[],
  callback?: function,
)
: Promise<FileStatusInfo[]>

Trả về từng FileStatus cho mảng fileEntry đã cho. Thường được gọi bằng kết quả từ dirReader.readEntries().

Thông số

  • fileEntries

    object[]

  • callback

    hàm không bắt buộc

    Tham số callback có dạng như sau:

    (status: FileStatusInfo[]) => void

Giá trị trả về

  • Promise<FileStatusInfo[]>

    Chrome 117 trở lên

    Các promise chỉ được hỗ trợ cho Manifest V3 trở lên, các nền tảng khác cần sử dụng lệnh gọi lại.

getServiceStatus()

Promise
chrome.syncFileSystem.getServiceStatus(
  callback?: function,
)
: Promise<ServiceStatus>

Trả về trạng thái hiện tại của dịch vụ phụ trợ đồng bộ hoá.

Thông số

  • callback

    hàm không bắt buộc

    Tham số callback có dạng như sau:

    (status: ServiceStatus) => void

Giá trị trả về

  • Promise<ServiceStatus>

    Chrome 117 trở lên

    Các promise chỉ được hỗ trợ cho Manifest V3 trở lên, các nền tảng khác cần sử dụng lệnh gọi lại.

getUsageAndQuota()

Promise
chrome.syncFileSystem.getUsageAndQuota(
  fileSystem: DOMFileSystem,
  callback?: function,
)
: Promise<StorageInfo>

Trả về mức sử dụng và hạn mức hiện tại (tính bằng byte) cho bộ nhớ tệp 'syncable' của ứng dụng.

Thông số

  • fileSystem

    DOMFileSystem

  • callback

    hàm không bắt buộc

    Tham số callback có dạng như sau:

    (info: StorageInfo) => void

Giá trị trả về

  • Promise<StorageInfo>

    Chrome 117 trở lên

    Các promise chỉ được hỗ trợ cho Manifest V3 trở lên, các nền tảng khác cần sử dụng lệnh gọi lại.

requestFileSystem()

Promise
chrome.syncFileSystem.requestFileSystem(
  callback?: function,
)
: Promise<DOMFileSystem>

Trả về một hệ thống tệp có thể đồng bộ hoá được hỗ trợ bởi Google Drive. Bạn có thể thao tác trên thực thể DOMFileSystem được trả về theo cách tương tự như trên hệ thống tệp Tạm thời và Hệ thống tệp liên tục (xem http://dev.w3.org/2009/dap/file-system/file-dir-sys.html).

Việc gọi phương thức này nhiều lần từ cùng một ứng dụng sẽ trả về cùng một giá trị nhận dạng cho cùng một hệ thống tệp.

Xin lưu ý rằng lệnh gọi này có thể không thành công. Ví dụ: nếu người dùng chưa đăng nhập vào Chrome hoặc nếu không có thao tác mạng nào. Để xử lý những lỗi này, điều quan trọng là bạn phải kiểm tra chrome.runtime.lastError trong lệnh gọi lại.

Thông số

  • callback

    hàm không bắt buộc

    Tham số callback có dạng như sau:

    (fileSystem: DOMFileSystem) => void

    • fileSystem

      DOMFileSystem

Giá trị trả về

  • Promise<DOMFileSystem>

    Chrome 117 trở lên

    Các promise chỉ được hỗ trợ cho Manifest V3 trở lên, các nền tảng khác cần sử dụng lệnh gọi lại.

setConflictResolutionPolicy()

Promise
chrome.syncFileSystem.setConflictResolutionPolicy(
  policy: ConflictResolutionPolicy,
  callback?: function,
)
: Promise<void>

Đặt chính sách giải quyết xung đột mặc định cho bộ nhớ tệp 'syncable' của ứng dụng. Theo mặc định, chính sách này được đặt thành 'last_write_win'. Khi bạn đặt chính sách xử lý xung đột thành 'last_write_win', các xung đột đối với tệp hiện có sẽ tự động được giải quyết vào lần cập nhật tệp tiếp theo. Bạn có thể tuỳ ý cung cấp callback để biết yêu cầu có thành công hay không.

Thông số

  • callback

    hàm không bắt buộc

    Tham số callback có dạng như sau:

    () => void

Giá trị trả về

  • Promise<void>

    Chrome 117 trở lên

    Các promise chỉ được hỗ trợ cho Manifest V3 trở lên, các nền tảng khác cần sử dụng lệnh gọi lại.

Sự kiện

onFileStatusChanged

chrome.syncFileSystem.onFileStatusChanged.addListener(
  callback: function,
)

Được kích hoạt khi dịch vụ đồng bộ hoá trong nền cập nhật một tệp.

Thông số

  • callback

    hàm

    Tham số callback có dạng như sau:

    (detail: FileInfo) => void

onServiceStatusChanged

chrome.syncFileSystem.onServiceStatusChanged.addListener(
  callback: function,
)

Được kích hoạt khi có lỗi hoặc thay đổi trạng thái khác trong phần phụ trợ đồng bộ hoá (ví dụ: khi quá trình đồng bộ hoá tạm thời bị vô hiệu hoá do lỗi mạng hoặc lỗi xác thực).

Thông số

  • callback

    hàm

    Tham số callback có dạng như sau:

    (detail: ServiceInfo) => void