chrome.syncFileSystem

Nội dung 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ành cho việc truy cập vào tài liệu người dùng tùy ý được lưu trữ trong Google Drive. Dịch vụ này 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ờ đó, nhiều ứng dụng khách có thể sử dụng cùng một loại dữ liệu. Đọ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

Liệt kê

"last_write_win"

FileInfo

Thuộc tính

  • hành động

    SyncAction không bắt buộc

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

  • direction

    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

    Vé vào cửa

    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 đã đồng bộ hoá. Khi xoá tệp, thông tin về fileEntry sẽ vẫn tồn tại nhưng tệp sẽ không còn tồn tại.

  • status

    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

Liệt kê

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

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

"conflicting"
Tệp xung đột với phiên bản từ xa và phải được 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 nhất định.

  • fileEntry

    Vé vào cửa

    Một trong các Mục ban đầu được cấp cho getFileStatuses.

  • status

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

ServiceInfo

Thuộc tính

ServiceStatus

Liệt kê

"initializing"
Dịch vụ đồng bộ hoá đang được khởi chạy (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ộ hóa không đồng bộ hóa tệp vì dịch vụ từ xa cần được người dùng xác thực để tiếp tục.

"tạm thời"
Dịch vụ đồng bộ hoá hiện 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ôi phục, chẳng hạn như mạng không có kết nối mạng, dịch vụ từ xa không hoạt động hoặc không truy cập được, v.v. Bạn cần cung cấp thêm thông tin chi tiết qua tham số description trong OnServiceInfoUpdated (có thể chứa thông tin chi tiết dành riêng cho từng dịch vụ).

"disabled"
Dịch vụ đồng bộ hoá đã bị tắt và nội dung sẽ không bao giờ đồng bộ hoá. (Ví dụ: lỗi 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 lỗi không thể khôi phục.)

StorageInfo

Thuộc tính

  • quotaBytes

    number

  • usageBytes

    number

SyncAction

Liệt kê

SyncDirection

Liệt kê

"local_to_remote"

"remote_to_local"

Phương thức

getConflictResolutionPolicy()

Cam kết
chrome.syncFileSystem.getConflictResolutionPolicy(
  callback?: function,
)

Xem chính sách hiện tại về cách giải quyết xung đột.

Tham số

Giá trị trả về

  • Chrome 117 trở lên

    Lời hứa 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()

Cam kết
chrome.syncFileSystem.getFileStatus(
  fileEntry: Entry,
  callback?: function,
)

Trả về FileStatus của 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 bạn đặt chính sách giải quyết xung đột của dịch vụ thành 'manual'.

Tham số

  • fileEntry

    Vé vào cửa

  • số gọi lại

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

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

    (status: FileStatus)=>void

Giá trị trả về

  • Promise<FileStatus>

    Chrome 117 trở lên

    Lời hứa 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()

Cam kết
chrome.syncFileSystem.getFileStatuses(
  fileEntries: object[],
  callback?: function,
)

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

Tham số

  • fileEntries

    đối tượng[]

  • số gọi lại

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

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

    (status: FileStatusInfo[])=>void

Giá trị trả về

  • Promise<FileStatusInfo[]>

    Chrome 117 trở lên

    Lời hứa 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()

Cam kết
chrome.syncFileSystem.getServiceStatus(
  callback?: function,
)

Trả về trạng thái phụ trợ đồng bộ hoá hiện tại.

Tham số

  • số gọi lại

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

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

    (status: ServiceStatus)=>void

Giá trị trả về

  • Promise<ServiceStatus>

    Chrome 117 trở lên

    Lời hứa 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()

Cam kết
chrome.syncFileSystem.getUsageAndQuota(
  fileSystem: DOMFileSystem,
  callback?: function,
)

Trả về mức sử dụng và hạn mức hiện tại tính bằng byte cho dung lượng lưu trữ tệp 'syncable' của ứng dụng.

Tham số

  • fileSystem

    DOMFileSystem

  • số gọi lại

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

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

    (info: StorageInfo)=>void

Giá trị trả về

  • Promise<StorageInfo>

    Chrome 117 trở lên

    Lời hứa 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()

Cam kết
chrome.syncFileSystem.requestFileSystem(
  callback?: function,
)

Trả về hệ thống tệp có thể đồng bộ hoá được Google Drive hỗ trợ. Có thể vận hành thực thể DOMFileSystem được trả về theo cách tương tự như hệ thống tệp Tạm thời và Ổn định (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 tên người dùng cho cùng một hệ thống tệp.

Lưu ý rằng cuộc gọi này có thể không thực hiện được. Ví dụ: nếu người dùng chưa đăng nhập vào Chrome hoặc nếu không có hoạt động mạng nào. Để xử lý những lỗi này, bạn cần kiểm tra chrome.runtime.lastError trong lệnh gọi lại.

Tham số

  • số gọi lại

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

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

    (fileSystem: DOMFileSystem)=>void

    • fileSystem

      DOMFileSystem

Giá trị trả về

  • Promise<DOMFileSystem>

    Chrome 117 trở lên

    Lời hứa 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()

Cam kết
chrome.syncFileSystem.setConflictResolutionPolicy(
  policy: ConflictResolutionPolicy,
  callback?: function,
)

Đặ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 giải quyết 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 liệu yêu cầu có thành công hay không.

Tham số

  • số gọi lại

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

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

    ()=>void

Giá trị trả về

  • Promise<void>

    Chrome 117 trở lên

    Lời hứa 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 một tệp được cập nhật bằng dịch vụ đồng bộ hoá trong nền.

Tham số

  • số gọi lại

    hàm

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

    (detail: FileInfo)=>void

onServiceStatusChanged

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

Được kích hoạt khi xảy ra lỗi hoặc thay đổi trạng thái khác trong phần phụ trợ đồng bộ hoá (ví dụ: khi tính năng đồng bộ hoá tạm thời bị tắt do lỗi mạng hoặc lỗi xác thực).

Tham số

  • số gọi lại

    hàm

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

    (detail: ServiceInfo)=>void