Como fazer upload de objetos

Nesta página, você verá as opções para fazer upload de objetos para o intervalo do Cloud Storage. Um objeto enviado por upload consiste nos dados que você quer armazenar com quaisquer metadados associados. Para uma visão geral dos objetos, leia a página Termos importantes e consulte os requisitos de nomeação de objetos.

Console

  1. Abra o navegador do Cloud Storage no Console do Google Cloud.
    Abrir o navegador do Cloud Storage
  2. Na lista de intervalos, clique no nome do intervalo que receberá o upload de um objeto.

  3. Na guia Objetos do intervalo, realize uma destas ações:

    • Arraste e solte os arquivos que você quer enviar da área de trabalho ou do gerenciador de arquivos para o painel principal no Console do Cloud.

    • Clique no botão Enviar arquivos, selecione os arquivos que serão enviados na caixa de diálogo exibida e clique em Abrir.

gsutil

Use o comando gsutil cp:

gsutil cp [OBJECT_LOCATION] gs://[DESTINATION_BUCKET_NAME]/

Em que:

  • [OBJECT_LOCATION] é o caminho local do objeto. Por exemplo, Desktop/dog.png.

  • [DESTINATION_BUCKET_NAME] é o nome do intervalo em que você está fazendo o upload do objeto. Por exemplo, my-bucket.

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;
    using ::google::cloud::StatusOr;
    [](gcs::Client client, std::string file_name, std::string bucket_name,
       std::string object_name) {
      // Note that the client library automatically computes a hash on the
      // client-side to verify data integrity during transmission.
      StatusOr<gcs::ObjectMetadata> object_metadata = client.UploadFile(
          file_name, bucket_name, object_name, gcs::IfGenerationMatch(0));

      if (!object_metadata) {
        throw std::runtime_error(object_metadata.status().message());
      }

      std::cout << "Uploaded " << file_name << " to object "
                << object_metadata->name() << " in bucket "
                << object_metadata->bucket()
                << "\nFull metadata: " << *object_metadata << "\n";
    }

C#

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

private void UploadFile(string bucketName, string localPath,
        string objectName = null)
    {
        var storage = StorageClient.Create();
        using (var f = File.OpenRead(localPath))
        {
            objectName = objectName ?? Path.GetFileName(localPath);
            storage.UploadObject(bucketName, objectName, null, f);
            Console.WriteLine($"Uploaded {objectName}.");
        }
    }

Go

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

ctx := context.Background()
    f, err := os.Open("notes.txt")
    if err != nil {
    	return err
    }
    defer f.Close()

    ctx, cancel := context.WithTimeout(ctx, time.Second*50)
    defer cancel()
    wc := client.Bucket(bucket).Object(object).NewWriter(ctx)
    if _, err = io.Copy(wc, f); err != nil {
    	return err
    }
    if err := wc.Close(); err != nil {
    	return err
    }

Java

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

Storage storage = StorageOptions.getDefaultInstance().getService();
    BlobId blobId = BlobId.of("bucket", "blob_name");
    BlobInfo blobInfo = BlobInfo.newBuilder(blobId).setContentType("text/plain").build();
    Blob blob = storage.create(blobInfo, "Hello, Cloud Storage!".getBytes(UTF_8));

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 filename = 'Local file to upload, 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 uploadFile() {
      // Uploads a local file to the bucket
      await storage.bucket(bucketName).upload(filename, {
        // Support for HTTP requests made with `Accept-Encoding: gzip`
        gzip: true,
        // By setting the option `destination`, you can change the name of the
        // object you are uploading to a bucket.
        metadata: {
          // Enable long-lived HTTP caching headers
          // Use only if the contents of the file will never change
          // (If the contents will change, use cacheControl: 'no-cache')
          cacheControl: 'public, max-age=31536000',
        },
      });

      console.log(`${filename} uploaded to ${bucketName}.`);
    }

    uploadFile().catch(console.error);

PHP

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

É possível usar o método File.createWriteStream() (em inglês) para fazer upload de um objeto, escrevendo-o em um fluxo.
use Google\Cloud\Storage\StorageClient;

    /**
     * Upload a file.
     *
     * @param string $bucketName the name of your Google Cloud bucket.
     * @param string $objectName the name of the object.
     * @param string $source the path to the file to upload.
     *
     * @return Psr\Http\Message\StreamInterface
     */
    function upload_object($bucketName, $objectName, $source)
    {
        $storage = new StorageClient();
        $file = fopen($source, 'r');
        $bucket = $storage->bucket($bucketName);
        $object = $bucket->upload($file, [
            'name' => $objectName
        ]);
        printf('Uploaded %s to gs://%s/%s' . PHP_EOL, basename($source), $bucketName, $objectName);
    }

Python

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

Use o método Blob.upload_from_file(), Blob.upload_from_filename() ou Blob.upload_from_string() (links em inglês) para fazer upload de um objeto.
from google.cloud import storage

    def upload_blob(bucket_name, source_file_name, destination_blob_name):
        """Uploads a file to the bucket."""
        # bucket_name = "your-bucket-name"
        # source_file_name = "local/path/to/file"
        # destination_blob_name = "storage-object-name"

        storage_client = storage.Client()
        bucket = storage_client.bucket(bucket_name)
        blob = bucket.blob(destination_blob_name)

        blob.upload_from_filename(source_file_name)

        print(
            "File {} uploaded to {}.".format(
                source_file_name, destination_blob_name
            )
        )

    

Ruby

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

# project_id        = "Your Google Cloud project ID"
    # bucket_name       = "Your Google Cloud Storage bucket name"
    # local_file_path   = "Path to local file to upload"
    # storage_file_path = "Path to store the file in Google Cloud Storage"

    require "google/cloud/storage"

    storage = Google::Cloud::Storage.new project_id: project_id
    bucket  = storage.bucket bucket_name

    file = bucket.create_file local_file_path, storage_file_path

    puts "Uploaded #{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 POST Objeto:

    curl -X POST --data-binary @[OBJECT_LOCATION] \
        -H "Authorization: Bearer [OAUTH2_TOKEN]" \
        -H "Content-Type: [OBJECT_CONTENT_TYPE]" \
        "https://storage.googleapis.com/upload/storage/v1/b/[BUCKET_NAME]/o?uploadType=media&name=[OBJECT_NAME]"

    Em que:

    • [OBJECT_LOCATION] é o caminho local do objeto. Por exemplo, Desktop/dog.png.
    • [OAUTH2_TOKEN] é o token de acesso gerado na Etapa 1.
    • [OBJECT_CONTENT_TYPE] é o tipo de conteúdo do objeto. Por exemplo, image/png.
    • [BUCKET_NAME] é o nome do intervalo em que você está fazendo o upload do objeto. Por exemplo, my-bucket.
    • [OBJECT_NAME] é o nome que você quer dar ao objeto. Por exemplo, pets/dog.png.

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 PUT Objeto:

    curl -X PUT --data-binary @[OBJECT_LOCATION] \
        -H "Authorization: Bearer [OAUTH2_TOKEN]" \
        -H "Content-Type: [OBJECT_CONTENT_TYPE]" \
        "https://storage.googleapis.com/[BUCKET_NAME]/[OBJECT_NAME]"

    Em que:

    • [OBJECT_LOCATION] é o caminho local do objeto. Por exemplo, Desktop/dog.png.
    • [OAUTH2_TOKEN] é o token de acesso gerado na Etapa 1.
    • [OBJECT_CONTENT_TYPE] é o tipo de conteúdo do objeto. Por exemplo, image/png.
    • [BUCKET_NAME] é o nome do intervalo em que você está fazendo o upload do objeto. Por exemplo, my-bucket.
    • [OBJECT_NAME] é o nome que você quer dar ao objeto. Por exemplo, pets/dog.png.

A seguir