Skip to main content
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

Colaboradores netapp-pcarriga netapp-lhalbert netapp-perveilerk netapp-jsnyder

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

Cada rejilla puede tener un máximo de 100.000 cubos.

Si varios tenants tienen hasta 5,000 buckets cada uno, cada Storage Node en el grid debe tener 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 AWS US, pero deberías restringirlos aún más para que sigan las convenciones de nomenclatura de DNS y así admitir solicitudes de S3 con estilo virtual-hosted.

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

Las operaciones ListObjects (GET Bucket) y ListObjectVersions (GET Bucket object versions) admiten StorageGRID"valores de coherencia" .

Puedes comprobar si las actualizaciones del tiempo de acceso están activadas o desactivadas para cada depósito. Consulta "GET Bucket última hora de acceso".

En la siguiente tabla se describe cómo StorageGRID implementa operaciones de bloque de API DE REST de S3. Para realizar alguna de estas operaciones, se deben proporcionar las credenciales de acceso necesarias para la cuenta.

Funcionamiento Implementación

CreateBucket

Crea un nuevo cucharón. Al crear la cuchara, se convierte en el propietario de la cuchara.

Nota: No se admiten los buckets de directorios de S3.

  • Los nombres de los bloques deben cumplir con las siguientes reglas:

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

    • Debe ser compatible con DNS.

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

    • Puede ser 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 utilizar letras minúsculas, números y guiones.

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

    • No debe utilizar periodos en solicitudes de estilo alojadas virtuales. Los períodos provocarán problemas en la verificación del certificado comodín del servidor.

  • Por defecto, los cubos se crean en la us-east-1 región; sin embargo, puede utilizar el LocationConstraint elemento de solicitud en el cuerpo de la solicitud para especificar una región diferente. Al utilizar el LocationConstraint elemento, debe especificar el nombre exacto de una región que se ha definido mediante Grid Manager o la API de gestión de grid. Póngase en contacto con el administrador del sistema si no conoce el nombre de región que debe utilizar.

    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 "Use la API REST DE S3 para configurar el bloqueo de objetos de S3".

    S3 Object Lock requiere el control de versiones del bucket, que se activa automáticamente al crear el bucket con S3 Object Lock habilitado.

    Puedes activar S3 Object Lock al crear el bucket o más adelante.

DeleteBucket

Elimina el cucharón.

DeleteBucketCors

Elimina la configuración de CORS para el cucharón.

DeleteBucketEncryption

Elimina el cifrado predeterminado del depósito. Los objetos cifrados existentes permanecen cifrados, pero todos los objetos nuevos agregados al depósito no están cifrados.

DeleteBucketLifecycle

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

DeleteBucketPolicy

Suprime la política asociada al depósito.

DeleteBucketReplication

Suprime la configuración de replicación asociada al depósito.

DeleteBucketTagging

Utiliza el tagging subrecurso para eliminar todas las etiquetas de un depósito.

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 el permiso del propietario del depósito, lo que indica que el propietario tiene acceso completo al depósito.

GetBucketCors

Devuelve la cors configuración del cucharón.

GetBucketEncryption

Devuelve la configuración de cifrado predeterminada para el depósito.

GetBucketLifecycleConfiguration

(Anteriormente llamado GET Bucket Lifecycle)

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

GetBucketLocation

Devuelve la región que se ha establecido mediante el elemento LocationConstraint en la solicitud CreateBucket. Si la región del bucket es us-east-1 (por defecto), se devuelve un valor vacío para LocationConstraint.

GetBucketNotificationConfiguration

(Anteriormente denominado notificación GET Bucket)

Devuelve la configuración de notificación adjunta al depósito.

GetBucketPolicy

Devuelve la política adjunta al depósito.

GetBucketReplication

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

Etiquetado de GetBucketTagging

Utiliza tagging el subrecurso para devolver todas las etiquetas de un depósito.

Precaución: Si se ha configurado una etiqueta de política de 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 implantación utiliza el versioning subrecurso para devolver el estado de control de versiones de un depósito.

  • BLANK: El control de versiones nunca se ha activado (el bloque no está versionado)

  • Activado: El control de versiones está activado

  • Suspendido: El control de versiones se ha habilitado anteriormente y se ha suspendido

GetObjectLockConfiguration

Devuelve el modo de retención predeterminado del depósito y el período de retención predeterminado, si está configurado.

Segmento de cabeza

Determina si existe un bloque y tiene permiso para acceder a él.

Esta operación devuelve:

  • x-ntap-sg-bucket-id: El UUID del bucket en formato UUID.

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

ListObjects y ListObjectsV2

(Anteriormente denominado GET Bucket)

Devuelve algunos o todos (hasta 1.000) de los objetos de un cubo. La clase de almacenamiento para los objetos puede tener cualquiera de dos valores, incluso si el objeto se ingirió con REDUCED_REDUNDANCY la opción de clase storage:

  • STANDARD, Que indica que el objeto se almacena en un pool de almacenamiento que consta de nodos de almacenamiento.

  • GLACIER, Que indica que el objeto se ha movido al depósito externo especificado por Cloud Storage Pool.

Si el depósito contiene un gran número de claves eliminadas que tienen el mismo prefijo, la respuesta puede incluir algunas CommonPrefixes que no contienen claves.

Para las solicitudes HeadObject y ListObject, StorageGRID devuelve las marcas de tiempo de 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:

  • Objeto principal de StorageGRID : "Última modificación": "2024-09-26T16:43:24+00:00"

  • Objeto de lista StorageGRID : "Última modificación": "2024-09-26T16:43:24.931000+00:00"

  • Objeto principal de AWS: "Última modificación": "2023-10-17T00:19:54+00:00"

  • AWS ListObject: "Última modificación": "2023-10-17T00:19:54+00:00"

ListObjectVersions

(Versiones de objeto GET Bucket con nombre anterior)

Con acceso DE LECTURA en un bloque, mediante esta operación con versions el subrecurso, se enumeran los metadatos de todas las versiones de objetos del bloque.

A cargo de PutBucketCors

Establece la configuración de CORS para un depósito para que éste pueda atender solicitudes de origen cruzado. El uso compartido de recursos de origen cruzado (CORS) es un mecanismo de seguridad que permite a las aplicaciones web de cliente de un dominio acceder a los recursos de un dominio diferente. Por ejemplo, supongamos que utiliza un depósito S3 denominado images para almacenar gráficos. Al establecer la configuración de CORS para el images depósito, puede permitir que las imágenes de ese depósito se muestren en el sitio web http://www.example.com.

PutBucketEncryption

Establece el estado de cifrado predeterminado de un depósito existente. Cuando se habilita el cifrado a nivel de bloque, se cifran todos los objetos nuevos que se añadan al bloque.StorageGRID admite el cifrado en el lado del servidor con claves gestionadas por StorageGRID. Al especificar la regla de configuración de cifrado del servidor, establezca el SSEAlgorithm parámetro en AES256 y no utilice el KMSMasterKeyID parámetro.

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

PutBucketLifecycleConfiguration

(Anteriormente llamado PUT Bucket Lifecycle)

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

  • Caducidad (días, fecha, ExpiredObjectDeleteMarker)

  • Caducidad de versiones sin corriente (NewerNoncurrentVersions, NoncurrentDays)

  • Filtro (prefijo, etiqueta)

  • Estado

  • ID

StorageGRID no admite estas acciones:

  • AbortEncompleteMultipartUpload

  • Transición

Consulta "Cree una 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 la cuchara se puede utilizar con cucharones que tengan habilitado el bloqueo de objetos S3, pero la configuración del ciclo de vida de la cuchara no es compatible con cucharones legados compatibles.

PutBucketNotificationConfiguration

(Anteriormente denominado notificación PUT Bucket)

Configura las notificaciones para el depósito mediante el XML de configuración de notificación incluido en el cuerpo de la solicitud. Debe tener en cuenta los siguientes detalles de implementación:

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

  • El destino de las notificaciones debe especificarse como URN de un extremo de StorageGRID. Se pueden crear extremos con el administrador de inquilinos o la API de gestión de inquilinos.

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

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

    • s3:ReducedRedundancyLostObject

    • s3:ObjectRestore:Completed

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

    • EventSource

      sgws:s3

    • * AwsRegion*

      no incluido

    • x-amz-id-2

      no incluido

    • arn

      urn:sgws:s3:::bucket_name

Política de PutBucketPolicy

Establece la política asociada al depósito. Consulta "Utilice las políticas de acceso de bloques y grupos".

PutBucketReplication

Configura "Replicación de CloudMirror de StorageGRID" el depósito mediante el XML de configuración de replicación proporcionado en el cuerpo de la solicitud. Para la replicación de CloudMirror, debe tener en cuenta los siguientes detalles de la 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 replicación".

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

  • Puede especificar un segmento de destino diferente en cada regla del XML de configuración de replicación. Un bloque de origen puede replicar en más de un bloque de destino.

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

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

  • No es necesario especificar un Role en el XML de configuración. StorageGRID no utiliza este valor y se ignorará si se envía.

  • Si omite la clase storage del XML de configuración, StorageGRID utiliza la STANDARD clase storage de forma predeterminada.

  • Si elimina un objeto del bloque de origen o elimina el propio bloque de origen, el comportamiento de replicación entre regiones es el siguiente:

    • Si elimina el objeto o bloque antes de que se haya replicado, el objeto o bloque no se replicará y no se le notificará.

    • Si elimina el objeto o bloque después de haber sido replicado, StorageGRID sigue el comportamiento estándar de eliminación de Amazon S3 para V1 de replicación entre regiones.

PutBucketTagging

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

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

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

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

  • La clave y los valores distinguen entre mayúsculas y 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 actual que el cubo ya tenga. Si se omite alguna etiqueta existente del conjunto, esas etiquetas se eliminarán para el cucharón.

PutBucketVersioning

Utiliza versioning el subrecurso para definir el estado de control de versiones de un bloque existente. Puede establecer el estado de control de versiones con uno de los siguientes valores:

  • Enabled: Activa el control de versiones de los objetos del bloque. Todos los objetos que se agregan al bloque reciben un ID de versión único.

  • Suspendido: Desactiva el control de versiones de los objetos del bloque. Todos los objetos agregados al depósito reciben el ID de versión null .

PutObjectLockConfiguration

  • Configura o elimina el modo de retención predeterminado y el período de retención predeterminado.

  • Si el administrador de la grid ha dado su autorización, activa S3 Object Lock en los buckets existentes.

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 usando el nuevo periodo de retención predeterminado.

Consulta "Use la API REST DE S3 para configurar el bloqueo de objetos de S3" para obtener información detallada.