Nesta página, mostramos como fazer upload de objetos para o bucket do Cloud Storage a partir do seu sistema de arquivos local. 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.
Para instruções sobre como fazer upload da memória, consulte Fazer upload de objetos da memória.
Funções exigidas
Para receber as permissões necessárias para fazer upload de objetos em um bucket, peça ao administrador para conceder a você o papel do IAM de Usuário de objetos do Storage (roles/storage.objectUser
) no bucket. Esse papel predefinido contém as permissões necessárias para fazer upload de um objeto em um bucket. Para acessar as permissões exatas necessárias, expanda a seção Permissões necessárias:
Permissões necessárias
storage.objects.create
storage.objects.delete
- Essa permissão é necessária apenas para uploads que substituem um objeto já existente.
storage.objects.get
- Essa permissão só é necessária ao usar a CLI do Google Cloud para executar a tarefa nesta página.
storage.objects.list
- Essa permissão só é necessária ao usar a CLI do Google Cloud para executar a tarefa nesta página. Essa permissão também será necessária se você quiser usar o console do Google Cloud para verificar os objetos de que você fez upload.
Se você planeja usar o console do Google Cloud para executar as tarefas nesta página, também precisará da permissão storage.buckets.list
, que não está inclusa no papel de Usuário de objetos do Storage (roles/storage.objectUser
). Para receber essa permissão, peça ao administrador para conceder a você o papel de Administrador do Storage (roles/storage.admin
) no projeto.
Também é possível conseguir essas permissões com outros papéis predefinidos ou personalizados.
Para informações sobre como conceder papéis nos buckets, consulte Usar o IAM com buckets.
fazer upload de um objeto em um bucket;
Siga estas etapas para fazer upload de um objeto para um bucket:
Console
- No Console do Google Cloud, acesse a página Buckets do Cloud Storage.
Na lista de buckets, clique no nome daquele em que você quer fazer o upload de um objeto.
Na guia Objetos do bucket, realize uma destas ações:
Arraste arquivos da área de trabalho ou do gerenciador de arquivos para o painel principal no console do Google 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 saber como acessar informações detalhadas de erro sobre operações do Cloud Storage com falha no console do Google Cloud, consulte Solução de problemas.
Linha de comando
Use o comando gcloud storage cp
:
gcloud 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.
Bibliotecas de cliente
C++
Para mais informações, consulte a documentação de referência da API Cloud Storage C++.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
C#
Para mais informações, consulte a documentação de referência da API Cloud Storage C#.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Go
Para mais informações, consulte a documentação de referência da API Cloud Storage Go.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Java
Para mais informações, consulte a documentação de referência da API Cloud Storage Java.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
No exemplo a seguir, é feito o upload de um objeto individual:
O exemplo a seguir faz upload de vários objetos simultaneamente:
No exemplo a seguir, todos os objetos com um prefixo comum são enviados simultaneamente:
Node.js
Para mais informações, consulte a documentação de referência da API Cloud Storage Node.js.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
No exemplo a seguir, é feito o upload de um objeto individual:
O exemplo a seguir faz upload de vários objetos simultaneamente:
No exemplo a seguir, todos os objetos com um prefixo comum são enviados simultaneamente:
PHP
Para mais informações, consulte a documentação de referência da API Cloud Storage PHP.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Python
Para mais informações, consulte a documentação de referência da API Cloud Storage Python.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
No exemplo a seguir, é feito o upload de um objeto individual:
O exemplo a seguir faz upload de vários objetos simultaneamente:
No exemplo a seguir, todos os objetos com um prefixo comum são enviados simultaneamente:
Ruby
Para mais informações, consulte a documentação de referência da API Cloud Storage Ruby.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Terraform
É possível usar um recurso Terraform para fazer upload de um objeto.
É preciso especificar content
ou source
.
APIs REST
API JSON
A API JSON distingue os uploads de mídia, em que apenas os dados do objeto são incluídos na solicitação, e os uploads de várias partes da API JSON, em que tanto objetos de dados quanto metadados de objetos são incluídos na solicitação.
Upload de mídia (um upload de solicitação única sem metadados de objetos)
Ter a gcloud CLI instalada e inicializadapara gerar um token de acesso para o cabeçalho
Authorization
.Como alternativa, é possível criar um token de acesso usando o OAuth 2.0 Playground e incluí-lo no cabeçalho
Authorization
.Use
cURL
para chamar a API JSON com uma solicitação dePOST
Objeto:curl -X POST --data-binary @OBJECT_LOCATION \ -H "Authorization: Bearer $(gcloud auth print-access-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
.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 várias partes da API JSON (um upload de solicitação única que inclui metadados de objetos)
Ter a gcloud CLI instalada e inicializadapara gerar um token de acesso para o cabeçalho
Authorization
.Como alternativa, é possível criar um token de acesso usando o OAuth 2.0 Playground e incluí-lo no cabeçalho
Authorization
.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,separator_string
.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,text/plain
.OBJECT_DATA
são os dados do objeto.
Exemplo:
--separator_string Content-Type: application/json; charset=UTF-8 {"name":"my-document.txt"} --separator_string Content-Type: text/plain This is a text file. --separator_string--
Use
cURL
para chamar a API JSON com uma solicitação dePOST
Objeto:curl -X POST --data-binary @MULTIPART_FILE_LOCATION \ -H "Authorization: Bearer $(gcloud auth print-access-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
.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
Ter a gcloud CLI instalada e inicializadapara gerar um token de acesso para o cabeçalho
Authorization
.Como alternativa, é possível criar um token de acesso usando o OAuth 2.0 Playground e incluí-lo no cabeçalho
Authorization
.Use
cURL
para chamar a API XML com uma solicitação dePUT
Objeto:curl -X PUT --data-binary @OBJECT_LOCATION \ -H "Authorization: Bearer $(gcloud auth print-access-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
.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 anterior 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