chrome.syncFileSystem

Описание

Используйте chrome.syncFileSystem API, чтобы сохранять и синхронизировать данные на Google Диске. Этот API НЕ предназначен для доступа к произвольным пользовательским документам, хранящимся на Google Диске. Оно предоставляет синхронизируемое хранилище для офлайн-режима и кеширования, чтобы одни и те же данные были доступны на разных клиентах. Подробнее об управлении данными…

Разрешения

syncFileSystem

Типы

ConflictResolutionPolicy

Перечисление

"last_write_win"

"manual"

FileInfo

Свойства

  • действие

    SyncAction необязательно

    Действие синхронизации, которое активирует событие onFileStatusChanged. Возможные значения: 'added', 'updated' или 'deleted'. Применяется, только если статус – 'synced'.

  • direction

    SyncDirection необязательный

    Направление синхронизации для события onFileStatusChanged. Значение направления синхронизации может быть 'local_to_remote' или 'remote_to_local'. Применяется, только если статус – 'synced'.

  • fileEntry

    Запись

    fileEntry для целевого файла, статус которого изменился. Содержит информацию о названии и пути синхронизированного файла. После удаления файла информация о нем (fileEntry) останется доступной, но сам файл будет удален.

  • статус

    Статус файла после события onFileStatusChanged. Возможные значения: 'synced', 'pending' или 'conflicting'.

FileStatus

Перечисление

"synced"
Конфликтов нет, локальные изменения отсутствуют.

pending
Есть одно или несколько локальных изменений, которые ещё не синхронизированы.

"conflicting"
Файл конфликтует с удаленной версией, и конфликт необходимо разрешить вручную.

FileStatusInfo

Свойства

  • ошибка

    Строка (необязательно)

    Необязательная ошибка, которая возвращается, только если возникла проблема с получением FileStatus для указанного файла.

  • fileEntry

    Запись

    Один из объектов Entry, изначально переданных в getFileStatuses.

  • статус

    Возможные значения: 'synced', 'pending' или 'conflicting'.

ServiceInfo

Свойства

ServiceStatus

Перечисление

"initializing"
Сервис синхронизации инициализируется (например, восстанавливает данные из базы данных, проверяет подключение и выполняет аутентификацию в сервисе).

running
Сервис синхронизации запущен и работает.

authentication_required
Сервис синхронизации не синхронизирует файлы, поскольку удаленному сервису требуется аутентификация пользователя.

"temporary_unavailable"
Синхронизация файлов не выполняется, поскольку удаленный сервис временно недоступен из-за устранимых ошибок, например отсутствует подключение к сети, удаленный сервис не работает или недоступен и т. д. Дополнительные сведения должны быть указаны в параметре description в OnServiceInfoUpdated (может содержать сведения, относящиеся к конкретному сервису).

"disabled"
Сервис синхронизации отключен, и контент не будет синхронизироваться. Например, это может произойти, если у пользователя нет аккаунта в удаленном сервисе или в сервисе синхронизации произошла неустранимая ошибка.

StorageInfo

Свойства

  • quotaBytes

    число

  • usageBytes

    число

SyncAction

Перечисление

"added"

"updated"

"deleted"

SyncDirection

Перечисление

"local_to_remote"

"remote_to_local"

Методы

getConflictResolutionPolicy()

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

Возвращает текущие правила разрешения конфликтов.

Параметры

Возвраты

  • Chrome 117 и более поздних версий

    Объекты Promise поддерживаются только в Manifest V3 и более поздних версиях. На других платформах нужно использовать обратные вызовы.

getFileStatus()

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

Возвращает FileStatus для заданного fileEntry. Возможные значения: 'synced', 'pending' или 'conflicting'. Обратите внимание, что статус 'conflicting' возможен, только если для правила разрешения конфликтов сервиса задано значение 'manual'.

Параметры

  • fileEntry

    Запись

  • обратный вызов

    function необязательно

    Параметр callback выглядит следующим образом:

    (status: FileStatus) => void

Возвраты

  • Promise<FileStatus>

    Chrome 117 и более поздних версий

    Объекты Promise поддерживаются только в Manifest V3 и более поздних версиях. На других платформах нужно использовать обратные вызовы.

getFileStatuses()

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

Возвращает каждый элемент FileStatus для заданного массива fileEntry. Обычно вызывается с результатом dirReader.readEntries().

Параметры

  • fileEntries

    object[]

  • обратный вызов

    function необязательно

    Параметр callback выглядит следующим образом:

    (status: FileStatusInfo[]) => void

Возвраты

  • Promise<FileStatusInfo[]>

    Chrome 117 и более поздних версий

    Объекты Promise поддерживаются только в Manifest V3 и более поздних версиях. На других платформах нужно использовать обратные вызовы.

getServiceStatus()

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

Возвращает текущий статус синхронизации.

Параметры

  • обратный вызов

    function необязательно

    Параметр callback выглядит следующим образом:

    (status: ServiceStatus) => void

Возвраты

  • Promise<ServiceStatus>

    Chrome 117 и более поздних версий

    Объекты Promise поддерживаются только в Manifest V3 и более поздних версиях. На других платформах нужно использовать обратные вызовы.

getUsageAndQuota()

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

Возвращает текущий объем и квоту в байтах для хранилища файлов 'syncable' для приложения.

Параметры

  • fileSystem

    DOMFileSystem

  • обратный вызов

    function необязательно

    Параметр callback выглядит следующим образом:

    (info: StorageInfo) => void

Возвраты

  • Promise<StorageInfo>

    Chrome 117 и более поздних версий

    Объекты Promise поддерживаются только в Manifest V3 и более поздних версиях. На других платформах нужно использовать обратные вызовы.

requestFileSystem()

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

Возвращает синхронизируемую файловую систему, поддерживаемую Google Диском. С возвращенным экземпляром DOMFileSystem можно работать так же, как и с временными и постоянными файловыми системами (см. http://dev.w3.org/2009/dap/file-system/file-dir-sys.html).

Если вызвать этот метод несколько раз из одного приложения, будет возвращен один и тот же дескриптор для одной и той же файловой системы.

Обратите внимание, что вызов может завершиться ошибкой. Например, если пользователь не вошел в Chrome или нет сетевой операции. Чтобы обработать эти ошибки, важно проверить chrome.runtime.lastError в обратном вызове.

Параметры

  • обратный вызов

    function необязательно

    Параметр callback выглядит следующим образом:

    (fileSystem: DOMFileSystem) => void

    • fileSystem

      DOMFileSystem

Возвраты

  • Promise<DOMFileSystem>

    Chrome 117 и более поздних версий

    Объекты Promise поддерживаются только в Manifest V3 и более поздних версиях. На других платформах нужно использовать обратные вызовы.

setConflictResolutionPolicy()

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

Задает правила разрешения конфликтов по умолчанию для хранилища файлов 'syncable' приложения. По умолчанию установлено значение 'last_write_win'. Если для правила разрешения конфликтов задано значение 'last_write_win', конфликты для существующих файлов автоматически разрешаются при следующем обновлении файла. callback можно указать, чтобы узнать, был ли запрос успешным.

Параметры

  • обратный вызов

    function необязательно

    Параметр callback выглядит следующим образом:

    () => void

Возвраты

  • Promise<void>

    Chrome 117 и более поздних версий

    Объекты Promise поддерживаются только в Manifest V3 и более поздних версиях. На других платформах нужно использовать обратные вызовы.

События

onFileStatusChanged

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

Срабатывает, когда файл обновляется сервисом фоновой синхронизации.

Параметры

  • обратный вызов

    function

    Параметр callback выглядит следующим образом:

    (detail: FileInfo) => void

    • подробная информация

onServiceStatusChanged

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

Срабатывает, когда в серверной части синхронизации возникает ошибка или другое изменение статуса (например, когда синхронизация временно отключена из-за ошибки сети или аутентификации).

Параметры

  • обратный вызов

    function

    Параметр callback выглядит следующим образом:

    (detail: ServiceInfo) => void