Nesta página, mostramos como fazer o upload de objetos para um bucket do Cloud Storage. Um objeto enviado por upload consiste nos dados que você quer armazenar com os metadados associados. Para uma visão geral conceitual, incluindo como escolher o método de upload ideal com base no tamanho do arquivo, consulte Uploads e downloads.
Pré-requisitos
Os pré-requisitos podem variar com base na ferramenta usada:
Console
Para concluir este guia usando o Console do Google Cloud, é preciso ter as permissões de IAM adequadas. Se o bucket que você quer enviar existir em um projeto criado por você, talvez seja necessário que o proprietário do projeto conceda um papel que contenha as permissões necessárias.
Para uma lista de permissões necessárias para ações específicas, consulte Permissões do IAM para o Console do Google Cloud.
Para ver a lista de papéis relevantes, consulte Papéis do Cloud Storage. Como alternativa, é possível criar um papel personalizado que tenha permissões mais limitadas.
Linha de comando
Para concluir este guia usando um utilitário de linha de comando, você precisa ter as permissões de IAM adequadas. Se o bucket que você quer enviar existir em um projeto que você não criou, talvez seja necessário que o proprietário do projeto conceda um papel que contenha as permissões necessárias.
Para uma lista de permissões necessárias para ações específicas, consulte Permissões do IAM para comandos gsutil.
Para ver a lista de papéis relevantes, consulte Papéis do Cloud Storage. Como alternativa, é possível criar um papel personalizado que tenha permissões mais limitadas.
Exemplos de código
Para concluir este guia usando as bibliotecas de cliente do Cloud Storage, é preciso ter as permissões de IAM adequadas. Se o bucket que você quer enviar existir em um projeto criado por você, talvez seja necessário que o proprietário do projeto conceda um papel que contenha as permissões necessárias. Salvo indicação em contrário, as solicitações de biblioteca de cliente são feitas por meio da API JSON.
Para uma lista de permissões necessárias para ações específicas, consulte Permissões do IAM para métodos JSON.
Para ver a lista de papéis relevantes, consulte Papéis do Cloud Storage. Como alternativa, é possível criar um papel personalizado que tenha permissões mais limitadas.
APIs REST
API JSON
Para concluir este guia usando a API JSON, é preciso ter as permissões do IAM adequadas. Se o bucket que você quer enviar existir em um projeto criado por você, o proprietário do projeto poderá precisar de um papel que contenha as permissões necessárias.
Para uma lista de permissões necessárias para ações específicas, consulte Permissões do IAM para métodos JSON.
Para ver a lista de papéis relevantes, consulte Papéis do Cloud Storage. Como alternativa, é possível criar um papel personalizado que tenha permissões mais limitadas.
Faça upload de um objeto em um bucket
Siga estas etapas para fazer upload de um objeto para um bucket:
Console
- No Console do Cloud, acesse a página Navegador do Cloud Storage.
Na lista de buckets, clique no nome daquele que receberá o upload de um objeto.
Na guia Objetos do bucket, 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.
Para informações detalhadas sobre erros de operações com falha no navegador do Cloud Storage, consulte Solução de problemas.
Linha de comando
gcloud
Use o comando gcloud alpha storage cp
:
gcloud alpha storage 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 bucket de upload do objeto. Por exemplo,my-bucket
.
Se funcionar, a resposta será parecida com esta:
Completed files 1/1 | 164.3kiB/164.3kiB
É possível definir metadados de objetos personalizados e de chave fixa como parte do upload do objeto usando sinalizações de comando.
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 bucket de upload do objeto. Por exemplo,my-bucket
.
Se funcionar, a resposta será parecida com esta:
Operation completed over 1 objects/58.8 KiB.
É possível definir metadados de objeto de chave fixa e personalizados como parte do
upload do objeto nos cabeçalhos da solicitação usando a
opção global -h
.
Amostras de código
C++
Para mais informações, consulte a documentação de referência da API Cloud Storage para C++.
No exemplo a seguir, um objeto é enviado de um arquivo:
O exemplo a seguir, um objeto é enviado da memória:
C#
Para mais informações, consulte a documentação de referência da API Cloud Storage para C#.
No exemplo a seguir, um objeto é enviado de um arquivo:
O exemplo a seguir, um objeto é enviado da memória:
Go
Para mais informações, consulte a documentação de referência da API Cloud Storage para Go.
No exemplo a seguir, um objeto é enviado de um arquivo:
O exemplo a seguir, um objeto é enviado da memória:
Java
Para mais informações, consulte a documentação de referência da API Cloud Storage para Java.
No exemplo a seguir, um objeto é enviado de um arquivo:
O exemplo a seguir, um objeto é enviado da memória:
Node.js
Para mais informações, consulte a documentação de referência da API Cloud Storage para Node.js.
No exemplo a seguir, um objeto é enviado de um arquivo:
O exemplo a seguir, um objeto é enviado da memória:
PHP
Para mais informações, consulte a documentação de referência da API Cloud Storage para PHP.
No exemplo a seguir, um objeto é enviado de um arquivo:
O exemplo a seguir, um objeto é enviado da memória:
Python
Para mais informações, consulte a documentação de referência da API Cloud Storage para Python.
No exemplo a seguir, um objeto é enviado de um arquivo:
O exemplo a seguir, um objeto é enviado da memória:
Ruby
Para mais informações, consulte a documentação de referência da API Cloud Storage para Ruby.
No exemplo a seguir, um objeto é enviado de um arquivo:
O exemplo a seguir, um objeto é enviado da memória:
Terraform
É possível usar um recurso Terraform para fazer upload de um objeto.
É preciso especificar content
ou source
. Você também pode especificar ambos.
APIs REST
API JSON
Upload de solicitação única sem metadados de objeto
- Receba um token de acesso de autorização do OAuth 2.0 Playground. Configure o Playground para usar suas credenciais do OAuth. Para ver instruções, consulte Autenticação de APIs.
Use
cURL
para chamar a API JSON com uma solicitação dePOST
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 bucket para o qual você está fazendo o upload do objeto. Por exemplo,my-bucket
.OBJECT_NAME
é o nome codificado por URL que você quer dar ao objeto. Por exemplo,pets/dog.png
, codificado por URL comopets%2Fdog.png
.
Upload de solicitação única com metadados de objeto
- Receba um token de acesso de autorização do OAuth 2.0 Playground. Configure o Playground para usar suas credenciais do OAuth. Para ver instruções, consulte Autenticação de APIs.
Crie um arquivo
multipart/related
com estas informações:--BOUNDARY_STRING Content-Type: application/json; charset=UTF-8 OBJECT_METADATA --BOUNDARY_STRING Content-Type: OBJECT_CONTENT_TYPE OBJECT_DATA --BOUNDARY_STRING--
Em que:
BOUNDARY_STRING
é uma string que você define e identifica as partes do arquivo de várias partes. Por exemplo,my-boundary
.OBJECT_METADATA
são os metadados que você quer incluir no arquivo, no formato JSON. No mínimo, essa seção precisa incluir um atributoname
para o objeto, por exemplo,{"name": "myObject"}
OBJECT_CONTENT_TYPE
é o tipo de conteúdo do objeto. Por exemplo,image/png
.OBJECT_DATA
são os dados do objeto.
Use
cURL
para chamar a API JSON com uma solicitação de objetoPOST
:curl -X POST --data-binary @MULTIPART_FILE_LOCATION \ -H "Authorization: Bearer OAUTH2_TOKEN" \ -H "Content-Type: multipart/related; boundary=BOUNDARY_STRING" \ -H "Content-Length: MULTIPART_FILE_SIZE" \ "https://storage.googleapis.com/upload/storage/v1/b/BUCKET_NAME/o?uploadType=multipart"
Em que:
MULTIPART_FILE_LOCATION
é o caminho local para o arquivo de várias partes criado na etapa 2. Por exemplo,Desktop/my-upload.multipart
.OAUTH2_TOKEN
é o token de acesso gerado na etapa 1;BOUNDARY_STRING
é a string de limite definida na etapa 2. Por exemplo,my-boundary
.MULTIPART_FILE_SIZE
é o tamanho total, em bytes, do arquivo de várias partes criado na etapa 2. Por exemplo,2000000
.BUCKET_NAME
é o nome do bucket de upload do objeto. Por exemplo,my-bucket
.
Se a solicitação for bem-sucedida, o servidor retornará o código
de status HTTP 200 OK
junto com os metadados do arquivo.
API XML
- Receba um token de acesso de autorização do OAuth 2.0 Playground. Configure o Playground para usar suas credenciais do OAuth. Para ver instruções, consulte Autenticação de APIs.
Use
cURL
para chamar a API XML com uma solicitação dePUT
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 bucket para o qual você está fazendo o upload do objeto. Por exemplo,my-bucket
.OBJECT_NAME
é o nome codificado por URL que você quer dar ao objeto. Por exemplo,pets/dog.png
, codificado por URL comopets%2Fdog.png
.
É possível definir metadados de objeto adicionais como parte do upload do objeto nos cabeçalhos da solicitação da mesma maneira que o exemplo acima define Content-Type
. Ao trabalhar com a API XML, os metadados são definidos somente no
momento em que o objeto é gravado, como ao fazer upload, copiar ou
substituir o objeto. Para mais informações, consulte
Como editar metadados de objeto.
A seguir
- Saiba mais sobre requisitos de nomenclatura para objetos.
- Transferir objetos da instância do Compute Engine.
- Transfira dados de provedores da nuvem ou de outras origens on-line, como listas de URLs.
- Controle o acesso aos objetos e buckets.
- Veja os metadados do seu objeto, incluindo o URL dele.
Faça um teste
Se você começou a usar o Google Cloud agora, crie uma conta para avaliar o desempenho do Cloud Storage em situações reais. Clientes novos também recebem US$ 300 em créditos para executar, testar e implantar cargas de trabalho.
Faça uma avaliação gratuita do Cloud Storage