Como fazer o download de objetos

Nesta página, mostramos como fazer o download de objetos em buckets do Cloud Storage. Para ter uma visão geral dos objetos, leia os Termos-chave.

Console

  1. Abra o navegador do Cloud Storage no Console do Google Cloud.
    Abrir o navegador do Cloud Storage
  2. Na lista de buckets, clique no nome do bucket que contém o objeto que você quer fazer o download.

    A página Detalhes do bucket é aberta, com a guia Objetos selecionada.

  3. Navegue até o objeto, que pode estar localizado em uma pasta.

  4. Clique no menu de mais ações () associado ao objeto.

  5. Selecione Fazer download.

Consulte Solução de problemas para ver informações detalhadas sobre erros de operações com falha no navegador do Cloud Storage.

gsutil

Use o comando gsutil cp:

gsutil cp gs://[BUCKET_NAME]/[OBJECT_NAME] [SAVE_TO_LOCATION]

Em que:

  • [BUCKET_NAME] é o nome do bucket que contém o objeto do qual você está fazendo o download. Por exemplo, my-bucket.

  • [OBJECT_NAME] é o nome do objeto do qual você está fazendo o download. Por exemplo, pets/dog.png.

  • [SAVE_TO_LOCATION] é o caminho local onde você está salvando o objeto. Por exemplo, Desktop/Images.

Se a operação for bem-sucedida, a resposta será parecida com esta:

Operation completed over 1 objects/58.8 KiB.

Amostras de código

C++

Para mais informações, consulte a documentação de referência da API do Cloud Storage para C++.

namespace gcs = google::cloud::storage;
[](gcs::Client client, std::string const& bucket_name,
   std::string const& object_name) {
  gcs::ObjectReadStream stream = client.ReadObject(bucket_name, object_name);

  int count = 0;
  std::string line;
  while (std::getline(stream, line, '\n')) {
    ++count;
  }

  std::cout << "The object has " << count << " lines\n";
}

C#

Para mais informações, consulte a documentação de referência da API Cloud Storage para C#.

private void DownloadObject(string bucketName, string objectName,
    string localPath = null)
{
    var storage = StorageClient.Create();
    localPath = localPath ?? Path.GetFileName(objectName);
    using (var outputFile = File.OpenWrite(localPath))
    {
        storage.DownloadObject(bucketName, objectName, outputFile);
    }
    Console.WriteLine($"downloaded {objectName} to {localPath}.");
}

Go

Para mais informações, consulte a documentação de referência da API Cloud Storage para Go.

ctx := context.Background()

ctx, cancel := context.WithTimeout(ctx, time.Second*50)
defer cancel()
rc, err := client.Bucket(bucket).Object(object).NewReader(ctx)
if err != nil {
	return nil, err
}
defer rc.Close()

data, err := ioutil.ReadAll(rc)
if err != nil {
	return nil, err
}
return data, nil

Java

Para mais informações, consulte a documentação de referência da API Cloud Storage para Java.

import com.google.cloud.storage.Blob;
import com.google.cloud.storage.BlobId;
import com.google.cloud.storage.Storage;
import com.google.cloud.storage.StorageOptions;
import java.nio.file.Path;

public class DownloadObject {
  public static void downloadObject(
      String projectId, String bucketName, String objectName, Path destFilePath) {
    // The ID of your GCP project
    // String projectId = "your-project-id";

    // The ID of your GCS bucket
    // String bucketName = "your-unique-bucket-name";

    // The ID of your GCS object
    // String objectName = "your-object-name";

    // The path to which the file should be downloaded
    // Path destFilePath = Paths.get("/local/path/to/file.txt");

    Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService();

    Blob blob = storage.get(BlobId.of(bucketName, objectName));
    blob.downloadTo(destFilePath);

    System.out.println(
        "Downloaded object "
            + objectName
            + " from bucket name "
            + bucketName
            + " to "
            + destFilePath);
  }
}

Node.js

Para mais informações, consulte a documentação de referência da API Cloud Storage para Node.js.

/**
 * TODO(developer): Uncomment the following lines before running the sample.
 */
// const bucketName = 'Name of a bucket, e.g. my-bucket';
// const srcFilename = 'Remote file to download, e.g. file.txt';
// const destFilename = 'Local destination for file, e.g. ./local/path/to/file.txt';

// Imports the Google Cloud client library
const {Storage} = require('@google-cloud/storage');

// Creates a client
const storage = new Storage();

async function downloadFile() {
  const options = {
    // The path to which the file should be downloaded, e.g. "./file.txt"
    destination: destFilename,
  };

  // Downloads the file
  await storage.bucket(bucketName).file(srcFilename).download(options);

  console.log(
    `gs://${bucketName}/${srcFilename} downloaded to ${destFilename}.`
  );
}

downloadFile().catch(console.error);

PHP

Para mais informações, consulte a documentação de referência da API do Cloud Storage para PHP.

use Google\Cloud\Storage\StorageClient;

/**
 * Download an object from Cloud Storage and save it as a local file.
 *
 * @param string $bucketName the name of your Google Cloud bucket.
 * @param string $objectName the name of your Google Cloud object.
 * @param string $destination the local destination to save the encrypted object.
 *
 * @return void
 */
function download_object($bucketName, $objectName, $destination)
{
    $storage = new StorageClient();
    $bucket = $storage->bucket($bucketName);
    $object = $bucket->object($objectName);
    $object->downloadToFile($destination);
    printf('Downloaded gs://%s/%s to %s' . PHP_EOL,
        $bucketName, $objectName, basename($destination));
}

Python

Para mais informações, consulte a documentação de referência da API do Cloud Storage para Python.

from google.cloud import storage

def download_blob(bucket_name, source_blob_name, destination_file_name):
    """Downloads a blob from the bucket."""
    # bucket_name = "your-bucket-name"
    # source_blob_name = "storage-object-name"
    # destination_file_name = "local/path/to/file"

    storage_client = storage.Client()

    bucket = storage_client.bucket(bucket_name)
    blob = bucket.blob(source_blob_name)
    blob.download_to_filename(destination_file_name)

    print(
        "Blob {} downloaded to {}.".format(
            source_blob_name, destination_file_name
        )
    )

Ruby

Para mais informações, consulte a documentação de referência da API Cloud Storage para Ruby.

# bucket_name = "Your Google Cloud Storage bucket name"
# file_name   = "Name of file in Google Cloud Storage to download locally"
# local_path  = "Destination path for downloaded file"

require "google/cloud/storage"

storage = Google::Cloud::Storage.new
bucket  = storage.bucket bucket_name
file    = bucket.file file_name

file.download local_path

puts "Downloaded #{file.name}"

APIs REST

API JSON

  1. Receba um token de acesso de autorização do OAuth 2.0 Playground. Configure o Playground para usar suas credenciais do OAuth.
  2. Use cURL para chamar a API JSON com uma solicitação de GET Objeto:

    curl -X GET \
      -H "Authorization: Bearer [OAUTH2_TOKEN]" \
      -o "[SAVE_TO_LOCATION]" \
      "https://storage.googleapis.com/storage/v1/b/[BUCKET_NAME]/o/[OBJECT_NAME]?alt=media"

    Em que:

    • [OAUTH2_TOKEN] é o token de acesso gerado na Etapa 1;
    • [SAVE_TO_LOCATION] é o caminho para o local onde você quer salvar o objeto. Por exemplo, Desktop/dog.png;
    • [BUCKET_NAME] é o nome do bucket que contém o objeto do qual você está fazendo o download. Por exemplo, my-bucket;
    • [OBJECT_NAME] é o nome do objeto do qual você está fazendo o download. Por exemplo, pets/dog.png. Para informações sobre como codificar nomes de objetos em URL para serem seguros, consulte Como codificar partes do caminho do URI.

API XML

  1. Receba um token de acesso de autorização do OAuth 2.0 Playground. Configure o Playground para usar suas credenciais do OAuth.
  2. Use cURL para chamar a API XML com uma solicitação de GET Objeto:

    curl -X GET \
      -H "Authorization: Bearer [OAUTH2_TOKEN]" \
      -o "[SAVE_TO_LOCATION]" \
      "https://storage.googleapis.com/[BUCKET_NAME]/[OBJECT_NAME]"

    Em que:

    • [OAUTH2_TOKEN] é o token de acesso gerado na Etapa 1;
    • [SAVE_TO_LOCATION] é o caminho para o local onde você quer salvar o objeto. Por exemplo, Desktop/dog.png;
    • [BUCKET_NAME] é o nome do bucket que contém o objeto do qual você está fazendo o download. Por exemplo, my-bucket.
    • [OBJECT_NAME] é o nome do objeto do qual você está fazendo o download. Por exemplo, pets/dog.png.

Para fazer o download de todos os objetos em um bucket ou subdiretório, use o comando gsutil cp.

A seguir