Usar metadados de arquivos na Web

Depois de fazer upload de um arquivo para a referência do Cloud Storage, você também pode receber ou atualizar os metadados do arquivo, por exemplo, para atualizar o tipo do conteúdo. Os arquivos também podem armazenar pares de valores-chave personalizados com metadados de arquivos adicionais.

Acessar metadados de arquivo

Os metadados de arquivos contêm propriedades comuns, que muitas vezes são chamadas de tipo MIME, como name, size e contentType, além de incomuns, como contentDisposition e timeCreated. Esses metadados podem ser recuperados a partir de uma referência do Cloud Storage usando o método getMetadata(). O getMetadata() retorna uma Promise contendo os metadados completos ou um erro se a Promise for rejeitada.

// Create a reference to the file whose metadata we want to retrieve
var forestRef = storageRef.child('images/forest.jpg');

// Get metadata properties
forestRef.getMetadata().then(function(metadata) {
  // Metadata now contains the metadata for 'images/forest.jpg'
}).catch(function(error) {
  // Uh-oh, an error occurred!
});

Atualizar metadados de arquivos

Usando o método updateMetadata(), você pode atualizar os metadados de arquivos após a conclusão do upload. Consulte a lista completa para saber mais sobre as propriedades que podem ser atualizadas. Somente as propriedades especificadas nos metadados são atualizadas, todas as outras não são modificadas. O updateMetadata() retorna uma Promise contendo os metadados completos ou um erro se a Promise for rejeitada.

// Create a reference to the file whose metadata we want to change
var forestRef = storageRef.child('images/forest.jpg');

// Create file metadata to update
var newMetadata = {
  cacheControl: 'public,max-age=300',
  contentType: 'image/jpeg'
}

// Update metadata properties
forestRef.updateMetadata(newMetadata).then(function(metadata) {
  // Updated metadata for 'images/forest.jpg' is returned in the Promise
}).catch(function(error) {
  // Uh-oh, an error occurred!
});

Você pode excluir uma propriedade de metadados configurando-a como null:

// Create file metadata with property to delete
var deleteMetadata = {
  contentType: null
}

// Delete the metadata property
forestRef.updateMetadata(deleteMetadata).then(function(metadata) {
  // metadata.contentType should be null
}).catch(function(error) {
  // Uh-oh, an error occurred!
});

Como lidar com erros

Podem ocorrer diferentes erros ao receber ou atualizar metadados, como arquivo inexistente ou usuário sem permissão de acesso ao arquivo desejado. Veja mais informações sobre erros na seção Como lidar com erros.

Metadados personalizados

Você pode especificar metadados personalizados como um objeto contendo propriedades String.

var metadata = {
  customMetadata: {
    'location': 'Yosemite, CA, USA',
    'activity': 'Hiking'
  }
}

Você pode usar metadados personalizados para armazenar dados específicos adicionais do app para cada arquivo, mas recomendamos usar um banco de dados (como o Firebase Realtime Database) para armazenar e sincronizar esse tipo de dados.

Propriedades de metadados de arquivos

Veja abaixo uma lista completa de propriedades de metadados em um arquivo:

Propriedade Tipo Gravável
bucket string NÃO
generation string NÃO
metageneration string NÃO
fullPath string NÃO
name string NÃO
size número NÃO
timeCreated string NÃO
updated string NÃO
md5Hash string SIM para upload, NÃO para updateMetadata
cacheControl string SIM
contentDisposition string SIM
contentEncoding string SIM
contentLanguage string SIM
contentType string SIM
customMetadata Objeto contendo string -> mapeamentos de string SIM

Fazer download, upload e atualizar arquivos são tarefas importantes, mas poder removê-los também é essencial. Saiba como excluir arquivos do Cloud Storage.

Enviar comentários sobre…

Precisa de ajuda? Acesse nossa página de suporte.