Criar um bucket de diretório - Amazon Simple Storage Service

Criar um bucket de diretório

Para começar a usar a classe de armazenamento Amazon S3 Express One Zone, crie um bucket de diretório. A classe de armazenamento S3 Express One Zone só pode ser usada com buckets de diretório. A classe de armazenamento S3 Express One Zone oferece suporte a casos de uso de baixa latência e fornece processamento de dados mais rápido em uma única zona de disponibilidade. Se sua aplicação é sensível à performance e se beneficia de latências inferiores a dez milissegundos para PUT e GET, recomendamos criar um bucket de diretório para que possa usar a classe de armazenamento S3 Express One Zone.

Há dois tipos de buckets do Amazon S3: buckets de uso geral e buckets de diretório. Você deve escolher o tipo de bucket que melhor se adapte aos requisitos de desempenho e da aplicação. Os buckets de uso geral são o tipo original de bucket do S3. Os buckets de uso geral são recomendados para a maioria dos casos de uso e padrões de acesso, permitindo que objetos sejam armazenados em todas as classes de armazenamento, exceto na classe S3 Express One Zone. Para obter mais informações sobre os buckets de uso geral, consulte Visão geral dos buckets.

Os buckets de diretório usam a classe de armazenamento S3 Express One Zone, projetada para workloads ou aplicações de performance crítica que exigem latência consistente inferior a dez milissegundos. A classe S3 Express One Zone é a primeira classe de armazenamento do S3 em que é possível selecionar uma única zona de disponibilidade com a opção de manter o armazenamento de objetos e os recursos de computação na mesma localização, o que fornece a maior velocidade de acesso possível. Ao criar um bucket de diretório, você tem a opção de especificar uma Região da AWS e uma zona de disponibilidade que seja local para suas instâncias computacionais do Amazon EC2, do Amazon Elastic Kubernetes Service ou do Amazon Elastic Container Service (Amazon ECS) a fim de otimizar a performance.

Com a classe S3 Express One Zone, os dados são armazenados de forma redundante em vários dispositivos dentro de uma única zona de disponibilidade. A classe S3 Express One Zone foi projetada para oferecer disponibilidade de 99,95% em uma única zona de disponibilidade e tem o respaldo do Acordo de Serviço do Amazon S3. Para ter mais informações, consulte Zona de disponibilidade única.

Os buckets de diretório organizam os dados de forma hierárquica em diretórios, ao contrário da estrutura de armazenamento plana dos buckets de uso geral. Não há limites de prefixo para os buckets de diretório, e diretórios individuais podem ser escalados horizontalmente.

Para obter mais informações sobre os buckets de diretório, consulte Buckets de diretório.

Nomes de bucket de diretório

Os nomes de bucket de diretório devem seguir o seguinte formato e estar em conformidade com as regras de nomenclatura para buckets de diretório:

bucket-base-name--azid--x-s3

Por exemplo, o seguinte nome de bucket de diretório contém o ID da zona de disponibilidade usw2-az1:

bucket-base-name--usw2-az1--x-s3

Para obter mais informações sobre as regras de nomenclatura para buckets de diretório, consulte Regras de nomenclatura de buckets de diretório.

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

  2. Na barra de navegação na parte superior da página, escolha o nome da Região da AWS exibida no momento. Em seguida, escolha a região na qual você deseja criar um bucket.

    nota

    Para reduzir a latência e os custos e atender aos requisitos regulatórios, selecione uma região perto de você. 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 de Regiões da AWS do Amazon S3, consulte Endpoints de AWS service (Serviço da AWS) no Referência geral da Amazon Web Services.

  3. No painel de navegação à esquerda, escolha Buckets.

  4. Selecione Create bucket (Criar bucket).

    A página Create bucket (Criar bucket) é aberta.

  5. Em Configuração geral, visualize a Região da AWS onde o bucket será criado.

  6. Em Tipo de bucket, escolha Diretório.

    nota
    • Se você escolher uma região que não oferece suporte a buckets de diretório, a opção Tipo de bucket desaparecerá e o tipo de bucket assumirá um bucket de uso geral como padrão. Para criar um bucket de diretório, escolha uma região compatível. Para obter uma lista de regiões que oferecem suporte a buckets de diretório e à classe de armazenamento Amazon S3 Express One Zone, consulte Zonas de disponibilidade e regiões da classe S3 Express One Zone.

    • Depois de criar o bucket, não será possível alterar o tipo.

    Em Zona de disponibilidade, escolha uma zona de disponibilidade que seja local para os seus serviços de computação. Para obter uma lista de zonas de disponibilidade que oferecem suporte a buckets de diretório e à classe de armazenamento S3 Express One Zone, consulte Zonas de disponibilidade e regiões da classe S3 Express One Zone.

    nota

    A zona de disponibilidade não poderá ser alterada após a criação do bucket.

  7. Em Zona de disponibilidade, marque a caixa de seleção para indicar que, em caso de interrupção na zona de disponibilidade, seus dados poderão ficar indisponíveis ou ser perdidos.

    Importante

    Embora os buckets de diretório sejam armazenados em vários dispositivos dentro de uma única zona de disponibilidade, eles não armazenam dados de forma redundante entre zonas de disponibilidade.

  8. Em Nome do bucket, insira um nome para o bucket de diretório.

    Os nomes dos buckets de diretório devem:

    • Ser únicos dentro da Região da AWS e da zona de disponibilidade escolhidas.

    • Ter entre 3 e 63 caracteres, incluindo o sufixo.

    • Consistir em letras minúsculas, números e hifens (-).

    • Inicie e termine com uma letra ou um número.

    • Deve incluir o seguinte sufixo: --azid--x-s3.

    Um sufixo é adicionado automaticamente ao nome de base que você fornece ao criar um bucket de diretório usando o console. Esse sufixo inclui o ID da zona de disponibilidade que você escolheu.

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

    Importante

    Não inclua 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.

  9. Em Propriedade do objeto, a configuração Imposto pelo proprietário do bucket está habilitada automaticamente e todas as listas de controle de acesso (ACLs) estão desabilitadas. Para os buckets de diretório, não é possível habilitar ACLs.

    ACLs desabilitadas
    • Imposto pelo proprietário do bucket (padrão): as ACLs são desabilitadas e o proprietário do bucket automaticamente tem a propriedade e o controle total sobre todos os objetos do bucket. As ACLs não afetam mais as permissões de acesso aos dados no bucket do S3. O bucket usa políticas exclusivamente para definir o controle de acesso.

      A maioria dos casos de uso modernos no Amazon S3 não exige mais o uso de ACLs. Para ter mais informações, consulte Controlar a propriedade de objetos e desabilitar ACLs para seu bucket.

  10. Em Configurações de bloqueio do acesso público deste bucket, todas as configurações da funcionalidade Bloqueio de Acesso Público para o bucket de diretório estão automaticamente habilitadas. Não é possível modificar essas configurações para buckets de diretório. Para obter mais informações sobre como bloquear o acesso público, consulte Bloquear o acesso público ao armazenamento do Amazon S3.

  11. Em Configurações de criptografia no lado do servidor, o Amazon S3 aplica a criptografia do lado do servidor com chaves gerenciadas pelo Amazon S3 (SSE-S3) como o nível básico de criptografia para todos os buckets do S3. Todos os uploads de objetos para buckets de diretório são criptografados com SSE-S3. Para buckets de diretório, não é possível modificar o tipo de criptografia. Para ter mais informações sobre SSE-S3, consulte Usar a criptografia do lado do servidor com chaves gerenciadas pelo Amazon S3 (SSE-S3).

  12. Selecione Criar bucket.

    Depois de criar o bucket, você pode adicionar arquivos e pastas a ele. Para ter mais informações, consulte Trabalhar com objetos em um bucket de diretório.

SDK for Go

Este exemplo mostra como criar um bucket de diretório usando o AWS SDK for Go.

var bucket = "..." func runCreateBucket(c *s3.Client) { resp, err := c.CreateBucket(context.Background(), &s3.CreateBucketInput{ Bucket: &bucket, CreateBucketConfiguration: &types.CreateBucketConfiguration{ Location: &types.LocationInfo{ Name: aws.String("usw2-az1"), Type: types.LocationTypeAvailabilityZone, }, Bucket: &types.BucketInfo{ DataRedundancy: types.DataRedundancySingleAvailabilityZone, Type: types.BucketTypeDirectory, }, }, }) var terr *types.BucketAlreadyOwnedByYou if errors.As(err, &terr) { fmt.Printf("BucketAlreadyOwnedByYou: %s\n", aws.ToString(terr.Message)) fmt.Printf("noop...\n") return } if err != nil { log.Fatal(err) } fmt.Printf("bucket created at %s\n", aws.ToString(resp.Location)) }
SDK for Java 2.x

Este exemplo mostra como criar um bucket de diretório usando o AWS SDK for Java 2.x.

public static void createBucket(S3Client s3Client, String bucketName) { //Bucket name format is {base-bucket-name}--{az-id}--x-s3 //example: doc-example-bucket--usw2-az1--x-s3 is a valid name for a directory bucket created in //Region us-west-2, Availability Zone 2 CreateBucketConfiguration bucketConfiguration = CreateBucketConfiguration.builder() .location(LocationInfo.builder() .type(LocationType.AVAILABILITY_ZONE) .name("usw2-az1").build()) //this must match the Region and Availability Zone in your bucket name .bucket(BucketInfo.builder() .type(BucketType.DIRECTORY) .dataRedundancy(DataRedundancy.SINGLE_AVAILABILITY_ZONE) .build()).build(); try { CreateBucketRequest bucketRequest = CreateBucketRequest.builder().bucket(bucketName).createBucketConfiguration(bucketConfiguration).build(); CreateBucketResponse response = s3Client.createBucket(bucketRequest); System.out.println(response); } catch (S3Exception e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } }
AWS SDK for JavaScript

Este exemplo mostra como criar um bucket de diretório usando o AWS SDK for JavaScript.

// file.mjs, run with Node.js v16 or higher // To use with the preview build, place this in a folder // inside the preview build directory, such as /aws-sdk-js-v3/workspace/ import { S3 } from "@aws-sdk/client-s3"; const region = "us-east-1"; const zone = "use1-az4"; const suffix = `${zone}--x-s3`; const s3 = new S3({ region }); const bucketName = `...--${suffix}`; const createResponse = await s3.createBucket( { Bucket: bucketName, CreateBucketConfiguration: {Location: {Type: "AvailabilityZone", Name: zone}, Bucket: { Type: "Directory", DataRedundancy: "SingleAvailabilityZone" }} } );
AWS SDK for .NET

Este exemplo mostra como criar um bucket de diretório usando o AWS SDK for .NET.

using (var amazonS3Client = new AmazonS3Client()) { var putBucketResponse = await amazonS3Client.PutBucketAsync(new PutBucketRequest { BucketName = "DOC-EXAMPLE-BUCKET--usw2-az1--x-s3", PutBucketConfiguration = new PutBucketConfiguration { BucketInfo = new BucketInfo { DataRedundancy = DataRedundancy.SingleAvailabilityZone, Type = BucketType.Directory }, Location = new LocationInfo { Name = "usw2-az1", Type = LocationType.AvailabilityZone } } }).ConfigureAwait(false); }
SDK for PHP

Este exemplo mostra como criar um bucket de diretório usando o AWS SDK for PHP.

require 'vendor/autoload.php'; $s3Client = new S3Client([ 'region' => 'us-east-1', ]); $result = $s3Client->createBucket([ 'Bucket' => 'doc-example-bucket--use1-az4--x-s3', 'CreateBucketConfiguration' => [ 'Location' => ['Name'=> 'use1-az4', 'Type'=> 'AvailabilityZone'], 'Bucket' => ["DataRedundancy" => "SingleAvailabilityZone" ,"Type" => "Directory"] ], ]);
SDK for Python

Este exemplo mostra como criar um bucket de diretório usando o AWS SDK for Python (Boto3).

import logging import boto3 from botocore.exceptions import ClientError def create_bucket(s3_client, bucket_name, availability_zone): ''' Create a directory bucket in a specified Availability Zone :param s3_client: boto3 S3 client :param bucket_name: Bucket to create; for example, 'doc-example-bucket--usw2-az1--x-s3' :param availability_zone: String; Availability Zone ID to create the bucket in, for example, 'usw2-az1' :return: True if bucket is created, else False ''' try: bucket_config = { 'Location': { 'Type': 'AvailabilityZone', 'Name': availability_zone }, 'Bucket': { 'Type': 'Directory', 'DataRedundancy': 'SingleAvailabilityZone' } } s3_client.create_bucket( Bucket = bucket_name, CreateBucketConfiguration = bucket_config ) except ClientError as e: logging.error(e) return False return True if __name__ == '__main__': bucket_name = 'BUCKET_NAME' region = 'us-west-2' availability_zone = 'usw2-az1' s3_client = boto3.client('s3', region_name = region) create_bucket(s3_client, bucket_name, availability_zone)
SDK for Ruby

Este exemplo mostra como criar um bucket de diretório usando o AWS SDK for Ruby.

s3 = Aws::S3::Client.new(region:'us-west-2') s3.create_bucket( bucket: "bucket_base_name--az_id--x-s3", create_bucket_configuration: { location: { name: 'usw2-az1', type: 'AvailabilityZone' }, bucket: { data_redundancy: 'SingleAvailabilityZone', type: 'Directory' } } )

Este exemplo mostra como criar um bucket de diretório usando o AWS CLI. Para usar o comando, substitua os espaços reservados para entrada do usuário por suas próprias informações.

Ao criar um bucket de diretório, você deve fornecer detalhes de configuração e usar a seguinte convenção de nomenclatura: bucket-base-name--azid--x-s3.

aws s3api create-bucket --bucket bucket-base-name--azid--x-s3 --create-bucket-configuration 'Location={Type=AvailabilityZone,Name=usw2-az1},Bucket={DataRedundancy=SingleAvailabilityZone,Type=Directory}' --region us-west-2

Para obter mais informações, consulte create-bucket na AWS Command Line Interface.