Crear un bucket de directorio - Amazon Simple Storage Service

Crear un bucket de directorio

Para empezar a utilizar la clase de almacenamiento Amazon S3 Express One Zone, debe crear un bucket de directorio. La clase de almacenamiento S3 Express One Zone solo se puede usar con buckets de directorio. La clase de almacenamiento S3 Express One Zone admite casos de uso de baja latencia y proporciona un procesamiento de datos más rápido dentro de una única zona de disponibilidad. Si su aplicación es sensible al rendimiento y se beneficia de latencias PUT y GET de milisegundos de un solo dígito, le recomendamos que cree un bucket de directorio para poder utilizar la clase de almacenamiento S3 Express One Zone.

Existen dos tipos de buckets de Amazon S3: buckets de uso general y buckets de directorio. Debe elegir el tipo de bucket que mejor se adapte a sus requisitos de rendimiento y aplicación. Los buckets de uso general son del tipo de bucket de S3 original. Se recomienda usar los buckets de uso general para la mayoría de los casos de uso y patrones de acceso, pues permiten almacenar objetos en todas las clases de almacenamiento, excepto en S3 Express One Zone. Para obtener más información acerca de los buckets de uso general, consulte Descripción general de los buckets.

Los buckets de directorio utilizan la clase de almacenamiento S3 Express One Zone, que está diseñada para utilizarse en cargas de trabajo o aplicaciones fundamentales para el rendimiento que requieren una latencia uniforme en milisegundos de un solo dígito. S3 Express One Zone es la primera clase de almacenamiento de S3 en la que se puede seleccionar una única zona de disponibilidad con la opción de coubicar su almacenamiento de objetos junto con sus recursos informáticos, lo que brinda la mayor velocidad de acceso posible. Al crear un bucket de directorio, si lo desea, puede especificar una Región de AWS y una zona de disponibilidad local para sus instancias de computación de Amazon EC2, Amazon Elastic Kubernetes Service o Amazon Elastic Container Service (Amazon ECS) a fin de optimizar el rendimiento.

Con S3 Express One Zone, sus datos se almacenan de forma redundante en varios dispositivos dentro de una única zona de disponibilidad. S3 Express One Zone está diseñado para ofrecer una disponibilidad del 99,95 % dentro de una única zona de disponibilidad y está respaldado por el contrato de nivel de servicio de Amazon S3. Para obtener más información, consulte Una sola zona de disponibilidad

Los buckets de directorio organizan los datos jerárquicamente en directorios, a diferencia de la estructura de almacenamiento plana de los buckets de uso general. No hay límites de prefijos para los buckets de directorio y los directorios individuales pueden realizar un escalado horizontal.

Para obtener más información acerca de estos buckets de directorio, consulte Buckets de directorio.

Nombres de los buckets de directorio

Los nombres de los buckets de directorio deben seguir este formato y cumplir con las reglas de denominación de los buckets de directorio:

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

Por ejemplo, el siguiente nombre del bucket de directorio contiene el ID de zona de disponibilidad usw2-az1:

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

Para obtener más información acerca de las reglas de nomenclatura de los bucket de directorio, consulte Reglas de nomenclatura de buckets de directorio.

  1. Inicie sesión en la AWS Management Console y abra la consola de Amazon S3 en https://console.aws.amazon.com/s3/.

  2. En la barra de navegación de la parte superior de la página, elija el nombre de la Región de AWS que aparece. A continuación, elija en Region (Región) la región en la que desea crear un bucket.

    nota

    Puede seleccionar una región cercana para minimizar la latencia y los costos, así como para satisfacer los requisitos normativos. Los objetos almacenados en una región nunca abandonarán esa región salvo que usted los transfiera de forma específica a otra. Para una lista de Regiones de AWS de Amazon S3, consulte Puntos de conexión de Servicio de AWS en la Referencia general de Amazon Web Services.

  3. En el panel de navegación izquierdo, elija Instancias.

  4. Elija Crear bucket.

    Se abrirá la página Crear bucket.

  5. En Configuración general, vea la Región de AWS donde se creará el bucket.

  6. En Bucket type (Tipo de bucket), elija Directory (Directorio).

    nota
    • Si ha elegido una región que no admite buckets de directorio, la opción Tipo de bucket desaparece y el tipo de bucket pasa a ser un bucket de uso general de forma predeterminada. Para crear un bucket de directorio, debe elegir una región compatible. Para obtener una lista de las regiones que admiten buckets de directorio y la clase de almacenamiento Amazon S3 Express One Zone, consulte Zonas y regiones de disponibilidad de S3 Express One Zone.

    • No se puede cambiar el tipo de bucket después de haberlo creado.

    En Zona de disponibilidad, elija una zona de disponibilidad local para sus servicios de computación. Para obtener una lista de las zonas de disponibilidad que admiten buckets de directorio y la clase de almacenamiento S3 Express One Zone, consulte Zonas y regiones de disponibilidad de S3 Express One Zone.

    nota

    La zona de disponibilidad no se puede cambiar una vez creado el bucket.

  7. En Zona de disponibilidad, selecciona la casilla para confirmar que, en caso de que se produzca una interrupción en la zona de disponibilidad, es posible que sus datos no estén disponibles o se pierdan.

    importante

    Los buckets de directorio se almacenan en varios dispositivos dentro de una única zona de disponibilidad, pero no almacenan datos de forma redundante en todas las zonas de disponibilidad.

  8. En Nombre del bucket, escriba un nombre para el bucket de directorio.

    Las siguientes reglas de nomenclatura se aplican a los buckets de directorio.

    • Ser únicos dentro de la Región de AWS y la zona de disponibilidad elegida.

    • El nombre debe tener entre 3 (mín.) y 63 caracteres (máx.), incluido el sufijo.

    • Constar de letras minúsculas, números y guiones (-).

    • Comenzar y terminar por un número o una letra.

    • Debe incluir el siguiente sufijo: --azid--x-s3.

    • Los nombres de los buckets no deben comenzar con el prefijo xn--.

    • Los nombres de los buckets no deben comenzar con el prefijo sthree-.

    • Los nombres de los buckets no deben comenzar con el prefijo sthree-configurator.

    • Los nombres de los buckets no deben comenzar con el prefijo amzn-s3-demo-.

    • Los nombres de los buckets no deben terminar con el sufijo -s3alias. Este sufijo está reservado para nombres de alias de punto de acceso. Para obtener más información, consulte Uso de un alias de estilo de bucket para su punto de acceso de bucket de S3.

    • Los nombres de los buckets no deben terminar con el sufijo --ol-s3. Este sufijo está reservado para nombres de alias de punto de acceso de Object Lambda. Para obtener más información, consulte Cómo usar un alias de estilo de bucket para su punto de acceso de Object Lambda de bucket de S3.

    • Los nombres de los buckets no deben terminar con el sufijo .mrap. Este sufijo está reservado para nombres de punto de acceso de varias regiones. Para obtener más información, consulte Reglas para asignar nombres a los puntos de acceso de varias regiones de Amazon S3.

    Se añade automáticamente un sufijo al nombre base que proporciona cuando crea un bucket de directorio utilizando la consola. Este sufijo incluye el ID de zona de disponibilidad de la que haya elegido.

    Una vez que haya creado el bucket, no podrá modificar su nombre. Para obtener más información sobre la nomenclatura de los buckets, consulte Reglas de nomenclatura de buckets.

    importante

    No incluya información confidencial, como números de cuenta, en el nombre del bucket. El nombre del bucket será visible en las URL que señalan a los objetos almacenados en él.

  9. En Propiedad del objeto, la opción Aplicada al propietario del bucket se activa de forma automática y se desactivan todas las listas de control de acceso (ACL). En el caso de los buckets de directorio, las ACL no se pueden habilitar.

    ACL desactivadas
    • Propietario del bucket obligatorio (predeterminado): las ACL están desactivadas y el propietario del bucket tiene automáticamente la propiedad y el control total sobre cada objeto del bucket. Las ACL ya no afectan a los permisos de acceso de los datos del bucket de S3. El bucket utiliza políticas exclusivamente para definir el control de acceso.

      La mayoría de los casos de uso modernos de Amazon S3 ya no requieren el uso de ACL. Para obtener más información, consulte Control de la propiedad de los objetos y desactivación de las ACL del bucket.

  10. En Configuración de bloqueo de acceso público para este bucket, tenga en cuenta que la configuración Bloquear acceso público para su bucket de directorio se habilita automáticamente. Esta configuración no se puede modificar para los bucket de directorio. Para obtener más información acerca del bloqueo del acceso público, consulte Bloquear el acceso público a su almacenamiento de Amazon S3.

  11. En Configuración del cifrado del lado del servidor, Amazon S3 aplica el cifrado del lado del servidor con claves administradas por Amazon S3 (SSE-S3) como nivel básico de cifrado para todos los buckets de S3. Todas las cargas de objetos en buckets de directorio se cifran con SSE-S3. No se puede modificar el tipo de cifrado para los bucket de directorio. Para obtener más información sobre SSE-S3, consulte Uso del cifrado del servidor con claves administradas por Amazon S3 (SSE-S3).

  12. Elija Crear bucket.

    Después de crear el bucket, puede añadir archivos y carpetas al bucket. Para obtener más información, consulte Uso de objetos en un bucket de directorio.

SDK for Go

En este ejemplo se muestra cómo crear un bucket de directorio con el 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

En este ejemplo se muestra cómo crear un bucket de directorio con el 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

En este ejemplo se muestra cómo crear un bucket de directorio con el 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

En este ejemplo se muestra cómo crear un bucket de directorio con el 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

En este ejemplo se muestra cómo crear un bucket de directorio con el 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

En este ejemplo se muestra cómo crear un bucket de directorio con el 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

En este ejemplo se muestra cómo crear un bucket de directorio con el 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' } } )

En este ejemplo se muestra cómo crear un bucket de directorio con el AWS CLI. Para usar el comando, sustituya los marcadores de posición de entrada del usuario con su propia información.

Al crear un bucket de directorio, debe proporcionar los detalles de configuración y utilizar la siguiente convención 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 obtener más información, consulte create-bucket en AWS Command Line Interface.