Criação de um bucket - Amazon Simple Storage Service

Criação de um bucket

Para fazer upload de seus dados para o Amazon S3, você deve primeiro criar um bucket do Amazon S3 em uma das Regiões da AWS . Ao criar um bucket, você deve escolher um nome de bucket e Região. Opcionalmente, você pode escolher outras opções de gerenciamento de armazenamento para o bucket. Assim que você cria um bucket, não pode mais alterar o respectivo nome ou região. Para obter informações sobre nomeação de buckets, consulte Regras de nomeação de bucket.

A Conta da AWS que cria o bucket é a proprietária do bucket. Você pode fazer upload de um número ilimitado de objetos para o bucket. Por padrão, você pode criar até 100 buckets em cada Contas da AWS . Se precisar de mais buckets, você poderá aumentar o limite de bucket da conta para um máximo de 1.000 buckets enviando um aumento de limite de serviço. Para saber como solicitar um aumento de limite de bucket, consulte Cotas de serviço da AWS na Referência geral da AWS. Você pode armazenar qualquer número de objetos no bucket.

Você pode usar o console do Amazon S3, as APIs do Amazon S3, a AWS CLI ou os AWS SDKs para criar um bucket.

  1. Faça login no AWS Management Console e abra o console do Amazon S3 em https://console.aws.amazon.com/s3/.

  2. Selecione Create bucket (Criar bucket).

    O assistente Create bucket (Criar bucket) é aberto.

  3. Em Bucket name (Nome do bucket), insira um nome compatível com o DNS para seu bucket.

    O nome do bucket deve:

    • Seja exclusivo em todo o Amazon S3.

    • Ter entre 3 e 63 caracteres.

    • Não contém caracteres maiúsculos.

    • Começar com uma letra minúscula ou um número.

    Depois de criado o bucket, você não pode mudar seu nome. Para obter informações sobre nomeação de buckets, consulte Regras de nomeação de bucket.

    Importante

    Evite incluir informações confidenciais, como números de conta, no nome do bucket. O nome do bucket é visível nos URLs que apontam para os objetos no bucket.

  4. Em Region (Região), escolha a Região da AWS onde deseja que o bucket fique.

    Escolha uma região próxima de você para minimizar a latência e os custos e atender aos requisitos regulatórios. Os objetos armazenados em uma região nunca saem dessa região, a menos que você os transfira para outra região. Para obter uma lista das Regiões da AWS do Amazon S3, consulte Endpoints de serviço da AWS na Referência geral da Amazon Web Services.

  5. Em Bucket settings for Block Public Access (Configurações de bucket para o Bloqueio de acesso público), escolha as configurações de bloqueio de acesso público que deseja aplicar ao bucket.

    Recomendamos que você mantenha todas as configurações ativadas, a menos que saiba que precisa desativar uma ou mais delas para seu caso de uso, como para hospedar um site público. As configurações de bloqueio de acesso público que você habilitar para o bucket também serão ativadas para todos os pontos de acesso criados no bucket. Para obter mais informações sobre como bloquear o acesso público, consulte Bloquear o acesso público ao armazenamento do Amazon S3.

  6. (Opcional) Se você quiser habilitar o Bloqueio de Objetos do S3, faça o seguinte:

    1. Escolha Advanced settings (Configurações avançadas) e leia a mensagem exibida.

      Importante

      Você só pode habilitar o bloqueio de objetos do S3 para um bucket ao criá-lo. Se você habilitar o bloqueio de objetos para o bucket, não poderá desabilitá-lo mais tarde. A ativação do bloqueio de objetos também permite o versionamento para o bucket. Depois de habilitar o bloqueio de objetos para o bucket, você deve definir as configurações de bloqueio de objetos antes que qualquer objeto no bucket seja protegido. Para obter mais informações sobre como configurar a proteção para objetos, consulte Usar o bloqueio de objetos do S3.

    2. Se quiser ativar o Object Lock, insira enable na caixa de texto e escolha Confirm (Confirmar).

    Para obter mais informações sobre o recurso bloqueio de objeto do S3, consulte Usar o bloqueio de objetos do S3.

    nota

    Para criar um bucket habilitado para bloqueio de objetos, você deve ter as seguintes permissões: S3:CreateBucket, S3:PutBucketVersioning e S3:PutBuckeTObjectLockConfiguration.

  7. Selecione Create bucket (Criar bucket).

Ao usar os AWS SDKs para criar um bucket, você deve criar um cliente e então usá-lo para enviar uma solicitação para criar um bucket. Como prática recomendada, crie o cliente e o bucket na mesma Região da AWS . Se você não especificar uma região ao criar um cliente ou um bucket, o Amazon S3 usará a região padrão Leste dos EUA (Norte da Virgínia).

Para criar um cliente a fim de acessar um endpoint de pilha dupla, é necessário especificar uma Região da AWS . Para obter mais informações, consulte Endpoints de pilha dupla. Para obter uma lista de Regiões da AWS disponíveis, consulte Regiões e endpoints na Referência geral da AWS.

Ao criar um cliente, a região mapeia para o endpoint específico da região. O cliente usa esse endpoint para se comunicar com o Amazon S3: s3.<region>.amazonaws.com. Se a sua região foi lançada após 20 de março de 2019,, seu cliente e bucket devem estar na mesma região. No entanto, é possível usar um cliente na região Leste dos EUA (Norte da Virgínia) para criar um bucket em qualquer região iniciada antes de 20 de março de 2019. Para obter mais informações, consulte Endpoints legados.

Os exemplos de código do AWS SDK executam as seguintes tarefas:

  • Crie um cliente especificando explicitamente uma região da Região da AWS : no exemplo, o cliente usa o endpoint s3.us-west-2.amazonaws.com para se comunicar com o Amazon S3. É possível especificar qualquer Região da AWS . Para obter uma lista de Regiões da AWS , consulte Regiões e endpoints na Referência geral da AWS.

  • Envie uma solicitação de bucket de criação especificando apenas um nome de bucket — O cliente envia uma solicitação ao Amazon S3 para criar o bucket na região onde você criou um cliente.

  • Recupere as informações sobre a localização do bucket. O Amazon S3 armazena as informações de localização do bucket no sub-recurso location que está associado ao bucket.

Java

Este exemplo mostra como criar um bucket do Amazon S3 usando o AWS SDK for Java. Para obter instruções sobre criar e testar um exemplo funcional, consulte Testar exemplos de código Java no Amazon S3.

import com.amazonaws.AmazonServiceException; import com.amazonaws.SdkClientException; import com.amazonaws.auth.profile.ProfileCredentialsProvider; import com.amazonaws.regions.Regions; import com.amazonaws.services.s3.AmazonS3; import com.amazonaws.services.s3.AmazonS3ClientBuilder; import com.amazonaws.services.s3.model.CreateBucketRequest; import com.amazonaws.services.s3.model.GetBucketLocationRequest; import java.io.IOException; public class CreateBucket2 { public static void main(String[] args) throws IOException { Regions clientRegion = Regions.DEFAULT_REGION; String bucketName = "*** Bucket name ***"; try { AmazonS3 s3Client = AmazonS3ClientBuilder.standard() .withCredentials(new ProfileCredentialsProvider()) .withRegion(clientRegion) .build(); if (!s3Client.doesBucketExistV2(bucketName)) { // Because the CreateBucketRequest object doesn't specify a region, the // bucket is created in the region specified in the client. s3Client.createBucket(new CreateBucketRequest(bucketName)); // Verify that the bucket was created by retrieving it and checking its location. String bucketLocation = s3Client.getBucketLocation(new GetBucketLocationRequest(bucketName)); System.out.println("Bucket location: " + bucketLocation); } } catch (AmazonServiceException e) { // The call was transmitted successfully, but Amazon S3 couldn't process // it and returned an error response. e.printStackTrace(); } catch (SdkClientException e) { // Amazon S3 couldn't be contacted for a response, or the client // couldn't parse the response from Amazon S3. e.printStackTrace(); } } }
.NET

Para obter informações sobre como criar e testar um exemplo funcional, consulte Executar os exemplos de código do Amazon S3 .NET.

using Amazon; using Amazon.S3; using Amazon.S3.Model; using Amazon.S3.Util; using System; using System.Threading.Tasks; namespace Amazon.DocSamples.S3 { class CreateBucketTest { private const string bucketName = "*** bucket name ***"; // Specify your bucket region (an example region is shown). private static readonly RegionEndpoint bucketRegion = RegionEndpoint.USWest2; private static IAmazonS3 s3Client; public static void Main() { s3Client = new AmazonS3Client(bucketRegion); CreateBucketAsync().Wait(); } static async Task CreateBucketAsync() { try { if (!(await AmazonS3Util.DoesS3BucketExistAsync(s3Client, bucketName))) { var putBucketRequest = new PutBucketRequest { BucketName = bucketName, UseClientRegion = true }; PutBucketResponse putBucketResponse = await s3Client.PutBucketAsync(putBucketRequest); } // Retrieve the bucket location. string bucketLocation = await FindBucketLocationAsync(s3Client); } catch (AmazonS3Exception e) { Console.WriteLine("Error encountered on server. Message:'{0}' when writing an object", e.Message); } catch (Exception e) { Console.WriteLine("Unknown encountered on server. Message:'{0}' when writing an object", e.Message); } } static async Task<string> FindBucketLocationAsync(IAmazonS3 client) { string bucketLocation; var request = new GetBucketLocationRequest() { BucketName = bucketName }; GetBucketLocationResponse response = await client.GetBucketLocationAsync(request); bucketLocation = response.Location.ToString(); return bucketLocation; } } }
Ruby

Para obter informações sobre como criar e testar um exemplo funcional, consulte Usar o AWS SDK for Ruby - versão 3.

require 'aws-sdk-s3' # Creates a bucket in Amazon S3. # # @param s3_client [Aws::S3::Client] An initialized Amazon S3 client. # @param bucket_name [String] The bucket's name. # @return [Boolean] true if the bucket was created; otherwise, false. # @example # s3_client = Aws::S3::Client.new(region: 'us-east-1') # exit 1 unless bucket_created?(s3_client, 'doc-example-bucket') def bucket_created?(s3_client, bucket_name) s3_client.create_bucket(bucket: bucket_name) rescue StandardError => e puts "Error while creating the bucket named '#{bucket_name}': #{e.message}" end

Você também pode usar a AWS Command Line Interface (AWS CLI) para criar um bucket do S3. Para obter mais informações, consulte create-bucket na Referência de comandos da AWS CLI.

Para obter informações sobre o AWS CLI, consulte O que é AWS Command Line Interface? no Manual do usuário do AWS Command Line Interface.