Fazer o download de arquivos na Web

Com o Cloud Storage, os desenvolvedores fazem o download de maneira rápida e fácil dos arquivos do intervalo do Google Cloud Storage, que é fornecido e gerenciado pelo Firebase.

Criar uma referência

Para fazer o download de um arquivo, primeiro crie uma referência do Cloud Storage para o arquivo que você quer transferir.

Você pode criar uma referência ao anexar caminhos filho à raiz de armazenamento ou a partir de um URL gs:// ou https:// existente que faça referência a um objeto no Cloud Storage.

// Create a reference with an initial file path and name
var storage = firebase.storage();
var pathReference = storage.ref('images/stars.jpg');

// Create a reference from a Google Cloud Storage URI
var gsReference = storage.refFromURL('gs://bucket/images/stars.jpg')

// Create a reference from an HTTPS URL
// Note that in the URL, characters are URL escaped!
var httpsReference = storage.refFromURL('https://firebasestorage.googleapis.com/b/bucket/o/images%20stars.jpg');

Fazer o download de dados via URL

Para receber o URL de download de um arquivo, chame o método getDownloadURL() em uma referência de armazenamento.

storageRef.child('images/stars.jpg').getDownloadURL().then(function(url) {
  // `url` is the download URL for 'images/stars.jpg'

  // This can be downloaded directly:
  var xhr = new XMLHttpRequest();
  xhr.responseType = 'blob';
  xhr.onload = function(event) {
    var blob = xhr.response;
  };
  xhr.open('GET', url);
  xhr.send();

  // Or inserted into an <img> element:
  var img = document.getElementById('myimg');
  img.src = url;
}).catch(function(error) {
  // Handle any errors
});

Configuração do CORS

Para fazer o download de dados diretamente no navegador, configure o intervalo do Cloud Storage para acesso de origem cruzada (CORS, na sigla em inglês). Nesse caso, use a ferramenta de linha de comando gsutil, que você pode instalar a partir deste site.

Se você não quiser restrições baseadas em domínio, que é o cenário mais comum, copie este JSON em um arquivo chamado cors.json:

[
  {
    "origin": ["*"],
    "method": ["GET"],
    "maxAgeSeconds": 3600
  }
]

Execute gsutil cors set cors.json gs://<your-cloud-storage-bucket> para implantar essas restrições.

Para ver mais informações, consulte Documentos do Cloud Storage.

Como lidar com erros

Durante os downloads, é possível que erros ocorram por vários motivos. Por exemplo, o arquivo não existe ou o usuário não tem permissão para acessá-lo. Saiba mais sobre erros na seção Como lidar com erros do documento.

Exemplo completo

Um exemplo completo de um erro no download é mostrado abaixo:

// Create a reference to the file we want to download
var starsRef = storageRef.child('images/stars.jpg');

// Get the download URL
starsRef.getDownloadURL().then(function(url) {
  // Insert url into an <img> tag to "download"
}).catch(function(error) {

  // A full list of error codes is available at
  // https://firebase.google.com/docs/storage/web/handle-errors
  switch (error.code) {
    case 'storage/object-not-found':
      // File doesn't exist
      break;

    case 'storage/unauthorized':
      // User doesn't have permission to access the object
      break;

    case 'storage/canceled':
      // User canceled the upload
      break;

    ...

    case 'storage/unknown':
      // Unknown error occurred, inspect the server response
      break;
  }
});

Você também pode receber ou atualizar metadados de arquivos armazenados no Cloud Storage.

Enviar comentários sobre…

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