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
-
description
string
-
state
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()
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ố
-
số gọi lại
hàm không bắt buộc
Tham số
callback
sẽ có dạng như sau:(policy: ConflictResolutionPolicy) => void
-
policy
-
Giá trị trả về
-
Promise<ConflictResolutionPolicy>
Chrome 117 trở lênLờ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()
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
-
status
-
Giá trị trả về
-
Promise<FileStatus>
Chrome 117 trở lênLờ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()
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
-
status
-
Giá trị trả về
-
Promise<FileStatusInfo[]>
Chrome 117 trở lênLờ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()
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
-
status
-
Giá trị trả về
-
Promise<ServiceStatus>
Chrome 117 trở lênLờ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()
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
-
info
-
Giá trị trả về
-
Promise<StorageInfo>
Chrome 117 trở lênLờ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()
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ênLờ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()
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ố
-
policy
-
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ênLờ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
-
chi tiết
-
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
-
chi tiết
-