chrome.syncFileSystem

Descrição

Use a API chrome.syncFileSystem para salvar e sincronizar dados no Google Drive. Essa API NÃO é para acessar documentos arbitrários do usuário armazenados no Google Drive. Ele oferece armazenamento sincronizável específico do app para uso off-line e de cache, de modo que os mesmos dados possam estar disponíveis em diferentes clientes. Leia Gerenciar dados para saber mais sobre como usar essa API.

Permissões

syncFileSystem

Tipos

ConflictResolutionPolicy

Enumeração

"last_write_win"

"manual"

FileInfo

Propriedades

  • ação

    SyncAction opcional

    Ação de sincronização realizada para disparar o evento onFileStatusChanged. O valor da ação pode ser 'added', 'updated' ou 'deleted'. Aplicável apenas se o status for 'synced'.

  • direção

    SyncDirection opcional

    Direção da sincronização para o evento onFileStatusChanged. O valor da direção da sincronização pode ser 'local_to_remote' ou 'remote_to_local'. Aplicável apenas se o status for 'synced'.

  • fileEntry

    Entrada

    fileEntry para o arquivo de destino cujo status foi alterado. Contém informações de nome e caminho do arquivo sincronizado. Quando um arquivo é excluído, as informações do fileEntry ainda ficam disponíveis, mas o arquivo não existe mais.

  • status

    Status do arquivo resultante após o evento onFileStatusChanged. O valor do status pode ser 'synced', 'pending' ou 'conflicting'.

FileStatus

Enumeração

"sincronizado"
Não está em conflito e não tem mudanças locais pendentes.

"pendente"
Tem uma ou mais mudanças locais pendentes que não foram sincronizadas.

"conflicting"
O arquivo entra em conflito com a versão remota e precisa ser resolvido manualmente.

FileStatusInfo

Propriedades

  • erro

    string opcional

    Erro opcional retornado apenas se houver um problema ao recuperar o FileStatus do arquivo especificado.

  • fileEntry

    Entrada

    Uma das entradas originalmente fornecidas para getFileStatuses.

  • status

    O valor do status pode ser 'synced', 'pending' ou 'conflicting'.

ServiceInfo

Propriedades

ServiceStatus

Enumeração

"initializing"
O serviço de sincronização está sendo inicializado (por exemplo, restaurando dados do banco de dados, verificando a conectividade e autenticando no serviço etc.).

"running"
O serviço de sincronização está funcionando.

"authentication_required"
O serviço de sincronização não está sincronizando arquivos porque o serviço remoto precisa ser autenticado pelo usuário para continuar.

"temporary_unavailable"
O serviço de sincronização não está sincronizando arquivos porque o serviço remoto está (temporariamente) indisponível devido a alguns erros recuperáveis, por exemplo, a rede está off-line, o serviço remoto está inativo ou inacessível etc. Mais detalhes devem ser fornecidos pelo parâmetro description em OnServiceInfoUpdated, que pode conter detalhes específicos do serviço.

"disabled"
O serviço de sincronização está desativado e o conteúdo nunca será sincronizado. Por exemplo, isso pode acontecer quando o usuário não tem uma conta no serviço remoto ou quando o serviço de sincronização teve um erro irrecuperável.

StorageInfo

Propriedades

  • quotaBytes

    número

  • usageBytes

    número

SyncAction

Enumeração

"added"

"updated"

"deleted"

SyncDirection

Enumeração

"local_to_remote"

"remote_to_local"

Métodos

getConflictResolutionPolicy()

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

Recebe a política atual de resolução de conflitos.

Parâmetros

Retorna

  • Chrome 117 ou mais recente

    As promessas só são compatíveis com o Manifest V3 e versões mais recentes. Outras plataformas precisam usar callbacks.

getFileStatus()

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

Retorna o FileStatus para o fileEntry especificado. O valor do status pode ser 'synced', 'pending' ou 'conflicting'. O estado 'conflicting' só ocorre quando a política de resolução de conflitos do serviço é definida como 'manual'.

Parâmetros

  • fileEntry

    Entrada

  • callback

    função opcional

    O parâmetro callback tem esta aparência:

    (status: FileStatus) => void

Retorna

  • Promise<FileStatus>

    Chrome 117 ou mais recente

    As promessas só são compatíveis com o Manifest V3 e versões mais recentes. Outras plataformas precisam usar callbacks.

getFileStatuses()

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

Retorna cada FileStatus para a matriz fileEntry especificada. Normalmente chamado com o resultado de dirReader.readEntries().

Parâmetros

  • fileEntries

    object[]

  • callback

    função opcional

    O parâmetro callback tem esta aparência:

    (status: FileStatusInfo[]) => void

Retorna

  • Promise<FileStatusInfo[]>

    Chrome 117 ou mais recente

    As promessas só são compatíveis com o Manifest V3 e versões mais recentes. Outras plataformas precisam usar callbacks.

getServiceStatus()

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

Retorna o status atual do back-end de sincronização.

Parâmetros

Retorna

  • Promise<ServiceStatus>

    Chrome 117 ou mais recente

    As promessas só são compatíveis com o Manifest V3 e versões mais recentes. Outras plataformas precisam usar callbacks.

getUsageAndQuota()

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

Retorna o uso e a cota atuais em bytes do armazenamento de arquivos 'syncable' para o app.

Parâmetros

  • fileSystem

    DOMFileSystem

  • callback

    função opcional

    O parâmetro callback tem esta aparência:

    (info: StorageInfo) => void

Retorna

  • Promise<StorageInfo>

    Chrome 117 ou mais recente

    As promessas só são compatíveis com o Manifest V3 e versões mais recentes. Outras plataformas precisam usar callbacks.

requestFileSystem()

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

Retorna um sistema de arquivos sincronizável com suporte do Google Drive. A instância DOMFileSystem retornada pode ser operada da mesma forma que os sistemas de arquivos temporários e permanentes (consulte http://dev.w3.org/2009/dap/file-system/file-dir-sys.html).

Chamar essa função várias vezes no mesmo app vai retornar o mesmo identificador para o mesmo sistema de arquivos.

Essa chamada pode falhar. Por exemplo, se o usuário não fez login no Chrome ou se não há uma operação de rede. Para lidar com esses erros, é importante verificar chrome.runtime.lastError no callback.

Parâmetros

  • callback

    função opcional

    O parâmetro callback tem esta aparência:

    (fileSystem: DOMFileSystem) => void

    • fileSystem

      DOMFileSystem

Retorna

  • Promise<DOMFileSystem>

    Chrome 117 ou mais recente

    As promessas só são compatíveis com o Manifest V3 e versões mais recentes. Outras plataformas precisam usar callbacks.

setConflictResolutionPolicy()

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

Define a política de resolução de conflitos padrão para o armazenamento de arquivos 'syncable' do app. Por padrão, ela é definida como 'last_write_win'. Quando a política de resolução de conflitos é definida como 'last_write_win', os conflitos de arquivos atuais são resolvidos automaticamente na próxima vez que o arquivo é atualizado. callback pode ser fornecido opcionalmente para saber se a solicitação foi bem-sucedida ou não.

Parâmetros

Retorna

  • Promise<void>

    Chrome 117 ou mais recente

    As promessas só são compatíveis com o Manifest V3 e versões mais recentes. Outras plataformas precisam usar callbacks.

Eventos

onFileStatusChanged

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

Acionado quando um arquivo é atualizado pelo serviço de sincronização em segundo plano.

Parâmetros

  • callback

    função

    O parâmetro callback tem esta aparência:

    (detail: FileInfo) => void

onServiceStatusChanged

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

Disparado quando ocorre um erro ou outra mudança de status no back-end de sincronização (por exemplo, quando a sincronização é desativada temporariamente devido a um erro de rede ou de autenticação).

Parâmetros

  • callback

    função

    O parâmetro callback tem esta aparência:

    (detail: ServiceInfo) => void