Skip to main content
Une version plus récente de ce produit est disponible.
La version française est une traduction automatique. La version anglaise prévaut sur la française en cas de divergence.

Opérations sur les compartiments S3 et détails d’implémentation dans StorageGRID

Le système StorageGRID prend en charge un maximum de 5 000 compartiments pour chaque compte locataire S3.

Chaque grille peut comporter un maximum de 100 000 compartiments.

Pour prendre en charge 5 000 compartiments, chaque nœud de stockage de la grille doit disposer d’un minimum de 64 Go de RAM.

Les restrictions relatives aux noms de compartiments suivent les restrictions de la région standard AWS US, mais vous devez les restreindre davantage aux conventions de nommage DNS pour prendre en charge les requêtes de type hébergement virtuel S3.

Pour plus d'informations, veuillez consulter les documents suivants :

Les opérations ListObjects (GET Bucket) et ListObjectVersions (GET Bucket object versions) prennent en charge StorageGRID "valeurs de cohérence".

Vous pouvez vérifier si les mises à jour du temps d'accès sont activées ou désactivées pour chaque compartiment. Voir "Obtenir le temps d'accès du compartiment".

Le tableau suivant décrit comment StorageGRID implémente les opérations sur les compartiments de l'API REST S3. Pour effectuer l'une de ces opérations, les identifiants d'accès nécessaires doivent être fournis pour le compte.

Opération Mise en œuvre

CreateBucket

Crée un nouveau compartiment. En créant le compartiment, vous en devenez le propriétaire.

  • Les noms des compartiments doivent respecter les règles suivantes :

    • Doit être unique dans chaque système StorageGRID (et pas seulement unique au sein du compte du locataire).

    • Doit être conforme au DNS.

    • Doit contenir au moins 3 et au plus 63 caractères.

    • Peut être une série d'une ou plusieurs étiquettes, les étiquettes adjacentes étant séparées par un point. Chaque étiquette doit commencer et se terminer par une lettre minuscule ou un chiffre et ne peut utiliser que des lettres minuscules, des chiffres et des traits d'union.

    • Ne doit pas ressembler à une adresse IP au format texte.

    • Il est déconseillé d'utiliser des points dans les requêtes hébergées virtuellement. Les points peuvent entraîner des problèmes lors de la vérification du certificat générique du serveur.

  • Par défaut, les compartiments sont créés dans la us-east-1 région ; cependant, vous pouvez utiliser l’ LocationConstraint élément dans le corps de la requête pour spécifier une autre région. Lorsque vous utilisez l’ LocationConstraint élément, vous devez indiquer le nom exact d’une région qui a été définie à l’aide de Grid Manager ou de l’API Grid Management. Contactez votre administrateur système si vous ne connaissez pas le nom de la région à utiliser.

    Remarque : Une erreur se produira si votre requête CreateBucket utilise une région qui n’a pas été définie dans StorageGRID.

  • Vous pouvez inclure l' `x-amz-bucket-object-lock-enabled`en-tête de requête pour créer un compartiment avec S3 Object Lock activé. Voir "Utilisez l'API REST S3 pour configurer S3 Object Lock".

    Vous devez activer S3 Object Lock lors de la création du compartiment. Vous ne pouvez pas ajouter ni désactiver S3 Object Lock après la création d'un compartiment. S3 Object Lock nécessite le versionnage du compartiment, qui est activé automatiquement lors de la création du compartiment.

DeleteBucket

Supprime le compartiment.

DeleteBucketCors

Supprime la configuration CORS du compartiment.

DeleteBucketEncryption

Supprime le chiffrement par défaut du compartiment. Les objets chiffrés existants restent chiffrés, mais les nouveaux objets ajoutés au compartiment ne sont pas chiffrés.

DeleteBucketLifecycle

Supprime la configuration du cycle de vie du compartiment. Voir "Créer une configuration de cycle de vie S3".

DeleteBucketPolicy

Supprime la stratégie associée au compartiment.

DeleteBucketReplication

Supprime la configuration de réplication associée au compartiment.

DeleteBucketTagging

Utilise la sous-ressource tagging pour supprimer toutes les balises d'un compartiment.

Attention : Si une balise de règle de configuration ILM non par défaut est définie pour ce compartiment, il y aura une balise NTAP-SG-ILM-BUCKET-TAG de compartiment avec une valeur qui lui est attribuée. N’émettez pas de requête DeleteBucketTagging s’il existe une balise NTAP-SG-ILM-BUCKET-TAG de compartiment. Émettez plutôt une requête PutBucketTagging contenant uniquement la balise NTAP-SG-ILM-BUCKET-TAG et sa valeur attribuée afin de supprimer toutes les autres balises du compartiment. Ne modifiez ni ne supprimez la balise NTAP-SG-ILM-BUCKET-TAG de compartiment.

GetBucketAcl

Renvoie une réponse positive ainsi que l'ID, DisplayName et la permission du propriétaire du compartiment, indiquant que ce dernier dispose d'un accès complet au compartiment.

GetBucketCors

Renvoie la `cors`configuration du compartiment.

GetBucketEncryption

Renvoie la configuration de chiffrement par défaut du compartiment.

GetBucketLifecycleConfiguration

(anciennement nommé GET Bucket lifecycle)

Renvoie la configuration du cycle de vie du compartiment. Voir "Créer une configuration de cycle de vie S3".

GetBucketLocation

Renvoie la région qui a été définie à l'aide de l'élément LocationConstraint dans la requête CreateBucket. Si la région du compartiment est us-east-1, une chaîne vide est renvoyée pour la région.

GetBucketNotificationConfiguration

(anciennement nommé GET Bucket notification)

Renvoie la configuration de notification associée au compartiment.

GetBucketPolicy

Renvoie la règle de configuration associée au compartiment.

GetBucketReplication

Renvoie la configuration de réplication associée au compartiment.

GetBucketTagging

Utilise la tagging sous-ressource pour renvoyer toutes les balises d’un compartiment.

Attention : Si une étiquette de règle ILM non par défaut est définie pour ce compartiment, il y aura une étiquette de compartiment NTAP-SG-ILM-BUCKET-TAG avec une valeur qui lui est attribuée. Ne modifiez ni ne supprimez cette étiquette.

GetBucketVersioning

Cette implémentation utilise la versioning sous-ressource pour renvoyer l'état de versionnage d'un compartiment.

  • blank: Le versionnage n'a jamais été activé (bucket est "Non versionné")

  • Activé : Le versionnage est activé

  • Suspendu : le versionnage était précédemment activé et est suspendu

GetObjectLockConfiguration

Renvoie le mode de rétention par défaut et la période de rétention par défaut du compartiment, si configurés.

HeadBucket

Détermine si un compartiment existe et si vous avez l'autorisation d'y accéder.

Cette opération renvoie :

  • x-ntap-sg-bucket-id: L'UUID du compartiment au format UUID.

  • x-ntap-sg-trace-id : L'identifiant de suivi unique de la requête associée.

ListObjects et ListObjectsV2

(anciennement nommé GET Bucket)

Renvoie tout ou partie (jusqu'à 1 000) des objets d'un compartiment. La classe de stockage des objets peut prendre l'une ou l'autre de deux valeurs, même si l'objet a été ingéré avec l'option de classe de stockage REDUCED_REDUNDANCY :

  • STANDARD, ce qui indique que l'objet est stocké dans un pool de stockage composé de Storage Nodes.

  • GLACIER, ce qui indique que l'objet a été déplacé vers le compartiment externe spécifié par le Cloud Storage Pool.

Si le compartiment contient un grand nombre de clés supprimées ayant le même préfixe, la réponse peut inclure certaines CommonPrefixes qui ne contiennent pas de clés.

Pour les requêtes HeadObject et ListObject, StorageGRID renvoie les horodatages LastModified avec une précision différente, tandis qu’AWS renvoie les horodatages avec la même précision, comme le montrent les exemples suivants :

  • 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

(anciennement nommé GET Bucket Object versions)

Avec un accès en lecture sur un compartiment, l'utilisation de cette opération avec la versions sous-ressource répertorie les métadonnées de toutes les versions des objets dans le compartiment.

PutBucketCors

Définit la configuration CORS d’un compartiment afin que celui-ci puisse traiter des requêtes inter-origines. Le partage de ressources inter-origines (CORS) est un mécanisme de sécurité qui permet aux applications web clientes d’un domaine d’accéder aux ressources d’un domaine différent. Par exemple, supposons que vous utilisiez un compartiment S3 nommé images pour stocker des graphiques. En définissant la configuration CORS pour le compartiment images, vous pouvez autoriser l’affichage des images de ce compartiment sur le site web http://www.example.com.

PutBucketEncryption

Définit l'état de chiffrement par défaut d'un compartiment existant. Lorsque le chiffrement au niveau du compartiment est activé, tout nouvel objet ajouté au compartiment est chiffré. StorageGRID prend en charge le chiffrement côté serveur avec des clés gérées par StorageGRID. Lors de la spécification de la règle de configuration du chiffrement côté serveur, définissez le paramètre SSEAlgorithm sur AES256, et n'utilisez pas le paramètre KMSMasterKeyID.

La configuration de chiffrement par défaut du compartiment est ignorée si la requête de téléchargement d'objet spécifie déjà un chiffrement (c'est-à-dire si la requête inclut l' `x-amz-server-side-encryption-*`en-tête de requête).

PutBucketLifecycleConfiguration

(anciennement nommé PUT Bucket lifecycle)

Crée une nouvelle configuration de cycle de vie pour le compartiment ou remplace une configuration de cycle de vie existante. StorageGRID prend en charge jusqu'à 1 000 règles de cycle de vie dans une règle de configuration. Chaque règle peut inclure les éléments XML suivants :

  • Expiration (Jours, Date, ExpiredObjectDeleteMarker)

  • NoncurrentVersionExpiration (NewerNoncurrentVersions, NoncurrentDays)

  • Filtrer (Préfixe, Tag)

  • Statut

  • ID

StorageGRID ne prend pas en charge ces actions :

  • AbortIncompleteMultipartUpload

  • Transition

Voir "Créer une configuration de cycle de vie S3". Pour comprendre comment l’action d’expiration dans un cycle de vie de compartiment interagit avec les instructions de placement ILM, voir "Comment l'ILM fonctionne tout au long du cycle de vie d'un objet".

Remarque : La configuration du cycle de vie des compartiments peut être utilisée avec les compartiments dont le S3 Object Lock est activé, mais la configuration du cycle de vie des compartiments n’est pas prise en charge pour les anciens compartiments Compliant.

PutBucketNotificationConfiguration

(anciennement nommé PUT Bucket notification)

Configure les notifications pour le compartiment à l'aide du fichier XML de configuration des notifications inclus dans le corps de la requête. Veuillez prendre en compte les détails d'implémentation suivants :

  • StorageGRID prend en charge les sujets Amazon Simple Notification Service (Amazon SNS), les sujets Kafka ou les points de terminaison webhook comme destinations. Les points de terminaison Simple Queue Service (SQS) ou AWS Lambda ne sont pas pris en charge.

  • La destination des notifications doit être spécifiée comme l'URN d'un point de terminaison StorageGRID. Les points de terminaison peuvent être créés à l'aide du Tenant Manager ou de l'API Tenant Management.

    Le point de terminaison doit exister pour que la configuration des notifications réussisse. Si le point de terminaison n'existe pas, une 400 Bad Request erreur est renvoyée avec le code InvalidArgument.

  • Il est impossible de configurer une notification pour les types d'événements suivants. Ces types d'événements ne sont pas pris en charge.

    • s3:ReducedRedundancyLostObject

    • s3:ObjectRestore:Completed

  • Les notifications d'événements envoyées par StorageGRID utilisent le format JSON standard, à l'exception de certaines clés qui ne sont pas incluses et d'autres qui utilisent des valeurs spécifiques, comme indiqué dans la liste suivante :

    • eventSource

      sgws:s3

    • awsRegion

      non inclus

    • x-amz-id-2

      non inclus

    • arn

      urn:sgws:s3:::bucket_name

PutBucketPolicy

Définit la politique associée au compartiment. Voir "Utilisez les stratégies d'accès aux compartiments et aux groupes".

PutBucketReplication

Configure "Réplication CloudMirror StorageGRID" pour le compartiment à l'aide du fichier XML de configuration de réplication fourni dans le corps de la requête. Pour la réplication CloudMirror, veuillez prendre en compte les détails d'implémentation suivants :

  • StorageGRID ne prend en charge que la version 1 de la configuration de réplication. Cela signifie que StorageGRID ne prend pas en charge l’utilisation de l’ `Filter`élément pour les règles et suit les conventions de la version 1 pour la suppression des versions d’objets. Pour plus de détails, consultez "Guide de l'utilisateur Amazon Simple Storage Service : configuration de la réplication".

  • La réplication des compartiments peut être configurée sur des compartiments versionnés ou non versionnés.

  • Vous pouvez spécifier un compartiment de destination différent dans chaque règle du fichier XML de configuration de réplication. Un compartiment source peut répliquer vers plusieurs compartiments de destination.

  • Les compartiments de destination doivent être spécifiés comme l'URN des points de terminaison StorageGRID, tels que définis dans le Tenant Manager ou l'API Tenant Management. Voir "Configurer la réplication CloudMirror".

    Le point de terminaison doit exister pour que la configuration de la réplication réussisse. Si le point de terminaison n'existe pas, la requête échoue en tant que 400 Bad Request. Le message d'erreur indique : Unable to save the replication policy. The specified endpoint URN does not exist: URN.

  • Il n'est pas nécessaire de spécifier un Role dans le fichier XML de configuration. Cette valeur n'est pas utilisée par StorageGRID et sera ignorée si elle est soumise.

  • Si vous omettez la classe de stockage dans le fichier XML de configuration, StorageGRID utilise la classe de stockage STANDARD par défaut.

  • Si vous supprimez un objet du compartiment source ou si vous supprimez le compartiment source lui-même, le comportement de la réplication interrégionale est le suivant :

    • Si vous supprimez l'objet ou le compartiment avant qu'il n'ait été répliqué, l'objet/compartiment n'est pas répliqué et vous n'êtes pas notifié.

    • Si vous supprimez l'objet ou le compartiment après sa réplication, StorageGRID suit le comportement de suppression standard d'Amazon S3 pour la version 1 de la réplication interrégionale.

PutBucketTagging

Utilise la tagging sous-ressource pour ajouter ou mettre à jour un ensemble d'étiquettes pour un compartiment. Lors de l'ajout d'étiquettes de compartiment, tenez compte des limitations suivantes :

  • StorageGRID et Amazon S3 prennent tous deux en charge jusqu'à 50 balises par compartiment.

  • Les étiquettes associées à un compartiment doivent avoir des clés d'étiquette uniques. Une clé d'étiquette peut comporter jusqu'à 128 caractères Unicode.

  • Les valeurs des balises peuvent comporter jusqu'à 256 caractères Unicode.

  • Les clés et les valeurs sont sensibles à la casse.

Attention : Si une balise de stratégie ILM non standard est définie pour ce compartiment, il y aura une balise NTAP-SG-ILM-BUCKET-TAG de compartiment avec une valeur qui lui est attribuée. Assurez-vous que la balise NTAP-SG-ILM-BUCKET-TAG de compartiment est incluse avec la valeur attribuée dans toutes les requêtes PutBucketTagging. Ne modifiez ni ne supprimez cette balise.

Remarque : Cette opération écrasera toutes les étiquettes existantes du compartiment. Si des étiquettes existantes sont omises de l'ensemble, ces étiquettes seront supprimées du compartiment.

PutBucketVersioning

Utilise la versioning sous-ressource pour définir l'état de versionnage d'un compartiment existant. Vous pouvez définir l'état de versionnage avec l'une des valeurs suivantes :

  • Activé : active le versionnage des objets du compartiment. Tous les objets ajoutés au compartiment reçoivent un identifiant de version unique.

  • Suspendu : désactive le versionnage des objets du compartiment. Tous les objets ajoutés au compartiment reçoivent l’ID de version null.

PutObjectLockConfiguration

Configure ou supprime le mode de rétention par défaut et la période de rétention par défaut du compartiment.

Si la période de conservation par défaut est modifiée, la date limite de conservation des versions d'objets existantes reste la même et n'est pas recalculée en fonction de la nouvelle période de conservation par défaut.