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 tài liệu tuỳ ý của người dùng được lưu trữ trong Google Drive. Tính năng 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ờ đó, cùng một dữ liệu có thể được cung cấp trên nhiều ứng dụng khách. 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
syncFileSystemLoại
ConflictResolutionPolicy
Enum
"last_write_win"
"manual"
FileInfo
Thuộc tính
-
hành động
SyncAction không bắt buộc
Thao tác đồ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'. -
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
fileEntrycho tệp mục tiêu 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 tệp bị xoá, thông tin vềfileEntryvẫn còn nhưng tệp sẽ không còn tồn tại. -
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
"synced"
Không xung đột và không có thay đổi nào đang chờ xử lý trên thiết bị.
"pending"
Có một hoặc nhiều thay đổi cục bộ đang chờ xử lý chưa được đồng bộ hoá.
"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 đã 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
-
mô tả
chuỗi
-
tiểu bang
ServiceStatus
Enum
"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ộ hoá không đồng bộ hoá tệp vì dịch vụ từ xa cần được người dùng xác thực để 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ôi phục, ví dụ: mạng không có kết nối, dịch vụ từ xa không hoạt động hoặc không thể kết nối, 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ờ đồ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 lỗi không thể khôi phục.)
StorageInfo
Thuộc tính
-
quotaBytes
số
-
usageBytes
số
SyncAction
Enum
"đã thêm"
"updated"
"deleted"
SyncDirection
Enum
"local_to_remote"
"remote_to_local"
Phương thức
getConflictResolutionPolicy()
chrome.syncFileSystem.getConflictResolutionPolicy(
callback?: function,
): Promise<ConflictResolutionPolicy>
Lấy chính sách xử lý xung đột hiện tại.
Thông số
-
callback
hàm không bắt buộc
Tham số
callbackcó 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,
): 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ố
callbackcó dạng như sau:(status: FileStatus) => void
-
trạng thái
-
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,
): 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ố
callbackcó dạng như sau:(status: FileStatusInfo[]) => void
-
trạng thái
-
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,
): Promise<ServiceStatus>
Trả về trạng thái hiện tại của phần phụ trợ đồng bộ hoá.
Thông số
-
callback
hàm không bắt buộc
Tham số
callbackcó dạng như sau:(status: ServiceStatus) => void
-
trạng thái
-
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,
): 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ố
callbackcó 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,
): Promise<DOMFileSystem>
Trả về một hệ thống tệp có thể đồng bộ hoá được Google Drive hỗ trợ. Bạn có thể thao tác trên thực thể DOMFileSystem được trả về theo cách tương tự như hệ thống tệp Tạm thời và Vĩnh viễn (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.
Xin lưu ý rằng lệnh 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. Để xử lý các lỗi này, bạn cần 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ố
callbackcó 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,
): 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 chính sách xử lý xung đột được đặ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 tiếp theo tệp được cập nhật. 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ố
-
policy
-
callback
hàm không bắt buộc
Tham số
callbackcó 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 dịch vụ đồng bộ hoá trong nền cập nhật.
Thông số
-
callback
hàm
Tham số
callbackcó 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).
Thông số
-
callback
hàm
Tham số
callbackcó dạng như sau:(detail: ServiceInfo) => void
-
chi tiết
-