Skip to main content
Hay disponible una nueva versión de este producto.
Se proporciona el idioma español mediante traducción automática para su comodidad. En caso de alguna inconsistencia, el inglés precede al español.

Operaciones de bucket S3 y detalles de implementación en StorageGRID

El sistema StorageGRID admite un máximo de 5,000 buckets por cada cuenta de inquilino de S3.

Cada grid puede tener un máximo de 100,000 buckets.

Para poder alojar 5,000 buckets, cada Storage Node en la grid debe contar con un mínimo de 64 GB de RAM.

Las restricciones relativas a los nombres de los buckets se ajustan a las de la región estándar de EE. UU. de AWS, pero deberías restringirlos aún más para que se ajusten a las convenciones de nomenclatura de DNS y así admitir solicitudes de S3 de tipo virtual hosted-style.

Para obtener más información, consulta lo siguiente:

Las operaciones ListObjects (GET Bucket) y ListObjectVersions (GET Bucket object versions) son compatibles con StorageGRID "valores de consistencia".

Puedes comprobar si las actualizaciones del tiempo de acceso están activadas o desactivadas para cada depósito. Consulta "Obtener el tiempo de último acceso al Bucket".

La siguiente tabla describe cómo StorageGRID implementa las operaciones de los buckets de la API de REST de S3. Para realizar cualquiera de estas operaciones, es necesario facilitar las credenciales de acceso correspondientes a la cuenta.

Operación Implementación

CreateBucket

Crea un nuevo depósito. Al crear el depósito, te conviertes en el propietario del depósito.

  • Los nombres de los buckets deben cumplir las siguientes reglas:

    • Debe ser único en cada sistema StorageGRID (no solo dentro de la cuenta del inquilino).

    • Debe ser compatible con DNS.

    • Debe contener al menos 3 y no más de 63 caracteres.

    • Puede consistir en una serie de una o más etiquetas, con etiquetas adyacentes separadas por un punto. Cada etiqueta debe comenzar y terminar con una letra minúscula o un número y solo puede usar letras minúsculas, números y guiones.

    • No debe parecer una dirección IP con formato de texto.

    • No deberías usar puntos en las solicitudes de estilo virtual hosted. Los puntos causarán problemas con la verificación del certificado comodín del servidor.

  • De forma predeterminada, los buckets se crean en la región us-east-1; sin embargo, puedes usar el elemento LocationConstraint en el cuerpo de la solicitud para especificar una región diferente. Cuando uses el elemento LocationConstraint, debes especificar el nombre exacto de una región que haya sido definida usando Grid Manager o la Grid Management API. Contacta a tu administrador del sistema si no sabes el nombre de la región que deberías usar.

    Nota: Se producirá un error si tu solicitud CreateBucket utiliza una región que no se haya definido en StorageGRID.

  • Puedes incluir el encabezado de solicitud x-amz-bucket-object-lock-enabled para crear un bucket con S3 Object Lock habilitado. Consulta "Utiliza la API de REST de S3 para configurar S3 Object Lock".

    Debes activar S3 Object Lock al crear el bucket. No puedes añadir ni desactivar S3 Object Lock después de crear el bucket. S3 Object Lock requiere el control de versiones del bucket, que se activa automáticamente al crear el bucket.

DeleteBucket

Elimina el bucket.

DeleteBucketCors

Elimina la configuración de CORS del depósito.

DeleteBucketEncryption

Elimina el cifrado predeterminado del depósito. Los objetos cifrados existentes siguen estando cifrados, pero los nuevos objetos que se añadan al depósito no están cifrados.

DeleteBucketLifecycle

Elimina la configuración del ciclo de vida del depósito. Consulta "Crear configuración del ciclo de vida de S3".

DeleteBucketPolicy

Elimina la política asociada al bucket.

DeleteBucketReplication

Elimina la configuración de replicación asociada al bucket.

DeleteBucketTagging

Utiliza el subrecurso tagging para eliminar todas las etiquetas de un bucket.

Precaución: Si se ha configurado una etiqueta de política ILM no predeterminada para este bucket, habrá una etiqueta de bucket NTAP-SG-ILM-BUCKET-TAG con un valor asignado. No envíes una solicitud DeleteBucketTagging si hay una etiqueta de bucket NTAP-SG-ILM-BUCKET-TAG. En su lugar, envía una solicitud PutBucketTagging con solo la etiqueta NTAP-SG-ILM-BUCKET-TAG y su valor asignado para eliminar todas las demás etiquetas del bucket. No modifiques ni elimines la etiqueta de bucket NTAP-SG-ILM-BUCKET-TAG.

GetBucketAcl

Devuelve una respuesta positiva y el ID, DisplayName y Permission del propietario del bucket, lo que indica que el propietario tiene acceso completo al bucket.

GetBucketCors

Devuelve la configuración de cors del bucket.

GetBucketEncryption

Devuelve la configuración de cifrado predeterminada del bucket.

GetBucketLifecycleConfiguration

(anteriormente denominado GET Bucket lifecycle)

Devuelve la configuración del ciclo de vida del depósito. Consulta "Crear configuración del ciclo de vida de S3".

GetBucketLocation

Devuelve la región que se estableció usando el elemento LocationConstraint en la solicitud CreateBucket. Si la región del bucket es us-east-1, se devuelve una cadena vacía para la región.

GetBucketNotificationConfiguration

(anteriormente denominada GET Bucket notification)

Devuelve la configuración de notificaciones asociada al bucket.

GetBucketPolicy

Devuelve la política asociada al bucket.

GetBucketReplication

Devuelve la configuración de replicación asociada al bucket.

GetBucketTagging

Utiliza el subrecurso tagging para devolver todas las etiquetas de un bucket.

Precaución: Si se ha configurado una etiqueta de política ILM no predeterminada para este bucket, habrá una etiqueta de bucket NTAP-SG-ILM-BUCKET-TAG con un valor asignado. No modifiques ni elimines esta etiqueta.

GetBucketVersioning

Esta implementación utiliza el subrecurso versioning para devolver el estado de control de versiones de un bucket.

  • blank: El control de versiones nunca se ha activado (el bucket está en "Unversioned")

  • Activado: el control de versiones está activado

  • Suspendido: la gestión de versiones estaba activada anteriormente y ahora está suspendida

GetObjectLockConfiguration

Devuelve el modo de retención predeterminado del bucket y el periodo de retención predeterminado, si están configurados.

HeadBucket

Comprueba si existe un bucket y si tienes permiso para acceder a él.

Esta operación devuelve:

  • x-ntap-sg-bucket-id: el UUID del depósito en formato UUID.

  • x-ntap-sg-trace-id: el identificador único de seguimiento de la solicitud asociada.

ListObjects y ListObjectsV2

(anteriormente llamado GET Bucket)

Devuelve algunos o todos (hasta 1,000) de los objetos en un bucket. La clase de almacenamiento de los objetos puede tener uno de estos dos valores, incluso si el objeto se ingresó con la opción de clase de almacenamiento REDUCED_REDUNDANCY:

  • STANDARD, lo que indica que el objeto se almacena en un grupo de almacenamiento formado por Storage Nodes.

  • GLACIER, lo que indica que el objeto se ha movido al bucket externo especificado por el Cloud Storage Pool.

Si el bucket contiene un gran número de claves eliminadas que tienen el mismo prefijo, es posible que la respuesta incluya algunos CommonPrefixes que no contengan claves.

Para las solicitudes HeadObject y ListObject, StorageGRID devuelve las marcas de tiempo LastModified con diferente precisión, mientras que AWS devuelve las marcas de tiempo con la misma precisión, como se muestra en los siguientes ejemplos:

  • StorageGRID HeadObject: "LastModified": "2024-09-26T16:43:24+00:00"

  • StorageGRID ListObject: "LastModified": "2024-09-26T16:43:24.931000+00:00"

  • AWS HeadObject: "LastModified": "2023-10-17T00:19:54+00:00"

  • AWS ListObject: "LastModified": "2023-10-17T00:19:54+00:00"

ListObjectVersions

(anteriormente denominado GET Bucket Object versions)

Con acceso de lectura a un bucket, al usar esta operación con el subrecurso versions se muestran los metadatos de todas las versiones de los objetos en el bucket.

PutBucketCors

Establece la configuración CORS de un bucket para que este pueda atender solicitudes de origen cruzado. El intercambio de recursos entre orígenes (CORS) es un mecanismo de seguridad que permite a las aplicaciones web cliente de un dominio acceder a recursos de otro dominio. Por ejemplo, supongamos que usas un bucket de S3 llamado images para almacenar gráficos. Al establecer la configuración CORS para el bucket images, puedes permitir que las imágenes de ese bucket se muestren en el sitio web http://www.example.com.

PutBucketEncryption

Establece el estado de cifrado predeterminado de un bucket existente. Cuando el cifrado a nivel de bucket está habilitado, cualquier objeto nuevo que se añada al bucket se cifra. StorageGRID admite el cifrado del lado del servidor con claves gestionadas por StorageGRID. Al especificar la regla de configuración del cifrado del lado del servidor, establece el parámetro SSEAlgorithm en AES256 y no uses el parámetro KMSMasterKeyID.

La configuración predeterminada de cifrado del bucket se ignora si la solicitud de carga de objetos ya especifica el cifrado (es decir, si la solicitud incluye el encabezado de solicitud x-amz-server-side-encryption-*).

PutBucketLifecycleConfiguration

(anteriormente denominado PUT Bucket lifecycle)

Crea una nueva configuración de ciclo de vida para el bucket o reemplaza una configuración de ciclo de vida existente. StorageGRID admite hasta 1,000 reglas de ciclo de vida en una configuración de ciclo de vida. Cada regla puede incluir los siguientes elementos XML:

  • Vencimiento (días, fecha, ExpiredObjectDeleteMarker)

  • NoncurrentVersionExpiration (NewerNoncurrentVersions, NoncurrentDays)

  • Filtro (prefijo, etiqueta)

  • Estado

  • ID

StorageGRID no admite estas acciones:

  • AbortIncompleteMultipartUpload

  • Transición

Consulta "Crear configuración del ciclo de vida de S3". Para entender cómo la acción de Caducidad en el ciclo de vida de un bucket interactúa con las instrucciones de ubicación de ILM, consulta "Cómo funciona ILM a lo largo de la vida de un objeto".

Nota: La configuración del ciclo de vida de los buckets se puede utilizar con buckets que tengan habilitado S3 Object Lock, pero la configuración del ciclo de vida de los buckets no es compatible con los buckets Compliant heredados.

PutBucketNotificationConfiguration

(anteriormente denominada PUT Bucket notification)

Configura las notificaciones para el bucket utilizando el XML de configuración de notificaciones incluido en el cuerpo de la solicitud. Debes tener en cuenta los siguientes detalles de implementación:

  • StorageGRID admite como destinos los temas de Amazon Simple Notification Service (Amazon SNS), los temas de Kafka o los endpoints de webhook. No se admiten los endpoints de Simple Queue Service (SQS) ni los endpoints de AWS Lambda.

  • El destino de las notificaciones debe especificarse como el URN de un endpoint de StorageGRID. Los endpoints pueden crearse usando el Tenant Manager o la Tenant Management API.

    El endpoint debe existir para que la configuración de notificaciones se realice correctamente. Si el endpoint no existe, se devuelve un error 400 Bad Request con el código InvalidArgument.

  • No puedes configurar una notificación para los siguientes tipos de eventos. Estos tipos de eventos no son compatibles.

    • s3:ReducedRedundancyLostObject

    • s3:ObjectRestore:Completed

  • Las notificaciones de eventos enviadas desde StorageGRID utilizan el formato JSON estándar, salvo que no incluyen algunas claves y utilizan valores específicos para otras, como se muestra en la siguiente lista:

    • eventSource

      sgws:s3

    • awsRegion

      no incluido

    • x-amz-id-2

      no incluido

    • arn

      urn:sgws:s3:::bucket_name

PutBucketPolicy

Establece la política asociada al depósito. Véase "Usa políticas de acceso a buckets y de grupo".

PutBucketReplication

Configura "Replicación de StorageGRID CloudMirror" para el bucket utilizando el XML de configuración de replicación proporcionado en el cuerpo de la solicitud. Para la replicación de CloudMirror, debes tener en cuenta los siguientes detalles de implementación:

  • StorageGRID solo admite la versión 1 de la configuración de replicación. Esto significa que StorageGRID no admite el uso del elemento Filter para las reglas y sigue las convenciones de la versión 1 para la eliminación de versiones de objetos. Para obtener más información, consulta "Guía del usuario de Amazon Simple Storage Service: configuración de la replicación".

  • La replicación de buckets se puede configurar en buckets con o sin control de versiones.

  • Puedes especificar un depósito de destino diferente en cada regla del archivo XML de configuración de la replicación. Un depósito de origen puede replicarse en más de un depósito de destino.

  • Los buckets de destino deben especificarse como el URN de los endpoints de StorageGRID, tal y como se indica en el Tenant Manager o en la Tenant Management API. Consulta "Configura la replicación de CloudMirror".

    El punto final debe existir para que la configuración de la replicación tenga éxito. Si el punto final no existe, la solicitud falla como un 400 Bad Request. El mensaje de error indica: Unable to save the replication policy. The specified endpoint URN does not exist: URN.

  • No necesitas especificar un Role en el archivo XML de configuración. Este valor no es utilizado por StorageGRID y se ignorará si lo envías.

  • Si omites la clase de almacenamiento en el archivo XML de configuración, StorageGRID usa por defecto la clase de almacenamiento STANDARD.

  • Si eliminas un objeto del depósito de origen o eliminas el propio depósito de origen, el comportamiento de la replicación entre regiones es el siguiente:

    • Si eliminas el objeto o el bucket antes de que se haya replicado, el objeto o el bucket no se replica y no recibes ninguna notificación.

    • Si eliminas el objeto o el bucket después de que se haya replicado, StorageGRID sigue el comportamiento estándar de eliminación de Amazon S3 para V1 de la replicación entre regiones.

PutBucketTagging

Utiliza el subrecurso tagging para añadir o actualizar un conjunto de etiquetas para un depósito. Al añadir etiquetas a un depósito, ten en cuenta las siguientes limitaciones:

  • Tanto StorageGRID como Amazon S3 admiten hasta 50 etiquetas por cada bucket.

  • Las etiquetas asociadas a un bucket deben tener claves de etiqueta únicas. Una clave de etiqueta puede tener hasta 128 caracteres Unicode.

  • Los valores de las etiquetas pueden tener una longitud máxima de 256 caracteres Unicode.

  • Las claves y los valores distinguen mayúsculas de minúsculas.

Precaución: Si se ha configurado una etiqueta de política ILM no predeterminada para este bucket, habrá una etiqueta de bucket NTAP-SG-ILM-BUCKET-TAG con un valor asignado. Asegúrate de que la etiqueta de bucket NTAP-SG-ILM-BUCKET-TAG se incluya con el valor asignado en todas las solicitudes PutBucketTagging. No modifiques ni elimines esta etiqueta.

Nota: Esta operación sobrescribirá cualquier etiqueta que ya tenga el bucket. Si se omite alguna etiqueta existente del conjunto, dicha etiqueta se eliminará del bucket.

PutBucketVersioning

Utiliza el subrecurso versioning para configurar el estado de control de versiones de un bucket existente. Puedes configurar el estado de control de versiones con uno de los siguientes valores:

  • Activado: Activa el control de versiones para los objetos del depósito. Todos los objetos añadidos al depósito reciben un identificador de versión único.

  • Suspendido: desactiva el control de versiones para los objetos del depósito. Todos los objetos añadidos al depósito reciben el ID de versión null.

PutObjectLockConfiguration

Configura o elimina el modo de retención predeterminado y el periodo de retención predeterminado del bucket.

Si se modifica el periodo de retención predeterminado, la fecha de retención de las versiones existentes de los objetos sigue siendo la misma y no se vuelve a calcular utilizando el nuevo periodo de retención predeterminado.

Consulta "Utiliza la API de REST de S3 para configurar S3 Object Lock" para obtener información detallada.