chrome.syncFileSystem

Descrição

Use a API chrome.syncFileSystem para salvar e sincronizar dados no Google Drive. Essa API NÃO serve para acessar documentos arbitrários de usuários armazenados no Google Drive. Ele fornece armazenamento sincronizável específico do app para uso off-line e de armazenamento em 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'. Só se aplica se o status for 'synced'.

  • direção

    SyncDirection opcional

    Direção de sincronização do evento onFileStatusChanged. O valor da direção de sincronização pode ser 'local_to_remote' ou 'remote_to_local'. Só se aplica se o status for 'synced'.

  • fileEntry

    Entrada

    fileEntry do arquivo de destino cujo status foi alterado. Contém informações de nome e caminho do arquivo sincronizado. Ao excluir o arquivo, as informações de fileEntry ainda estarão disponíveis, mas o arquivo não vai mais existir.

  • status

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

FileStatus

Enumeração

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

"pending"
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 que só é retornado se houver um problema ao recuperar o FileStatus do arquivo em questão.

  • 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 o serviço etc.).

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

"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 não pode ser acessado 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 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()

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

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

Parâmetros

Retorna

  • Chrome 117+

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

getFileStatus()

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

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

Parâmetros

  • fileEntry

    Entrada

  • callback

    função optional

    O parâmetro callback é semelhante a:

    (status: FileStatus) => void

Retorna

  • Promise<FileStatus>

    Chrome 117+

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

getFileStatuses()

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

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

Parâmetros

  • fileEntries

    object[]

  • callback

    função optional

    O parâmetro callback é semelhante a:

    (status: FileStatusInfo[]) => void

Retorna

  • Promise<FileStatusInfo[]>

    Chrome 117+

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

getServiceStatus()

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

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

Parâmetros

Retorna

  • Promise<ServiceStatus>

    Chrome 117+

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

getUsageAndQuota()

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

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

Parâmetros

  • fileSystem

    DOMFileSystem

  • callback

    função optional

    O parâmetro callback é semelhante a:

    (info: StorageInfo) => void

Retorna

  • Promise<StorageInfo>

    Chrome 117+

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

requestFileSystem()

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

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

Chamar isso 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 estiver conectado ao Chrome ou se não houver operação de rede. Para lidar com esses erros, é importante que chrome.runtime.lastError seja verificado no callback.

Parâmetros

  • callback

    função optional

    O parâmetro callback é semelhante a:

    (fileSystem: DOMFileSystem) => void

    • fileSystem

      DOMFileSystem

Retorna

  • Promise<DOMFileSystem>

    Chrome 117+

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

setConflictResolutionPolicy()

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

Define a política padrão de resolução de conflitos 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 for atualizado. callback pode ser fornecido opcionalmente para saber se a solicitação foi bem-sucedida ou não.

Parâmetros

Retorna

  • Promessa<void>

    Chrome 117+

    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 é semelhante a:

    (detail: FileInfo) => void

onServiceStatusChanged

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

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

Parâmetros

  • callback

    função

    O parâmetro callback é semelhante a:

    (detail: ServiceInfo) => void