Modifier les métadonnées et les tags d’objets

Les métadonnées décrivent le contenu et les en-têtes d’un objet. Les tags sont des paires clé-valeur distinctes, utilisées par les politiques et les règles de cycle de vie. Modifier un tag ne change pas le contenu. Pour modifier les métadonnées, S3Client réécrit l’objet par copie.

Les réécritures utilisent les conditions des copies S3. Désactiver la condition source applicable autorise une copie malgré une modification concurrente après la vérification préalable ; la réécriture peut alors remplacer cette modification.

Choisir la cible et les permissions

Pour modifier les métadonnées de l’objet courant, ouvrez Properties sur l’objet sans Show versions. Vous pouvez aussi sélectionner la dernière version en vue versions : General > Latest version: doit indiquer Yes (from the last version listing). S3Client vérifie avant la copie que cette version est toujours courante ; si elle a été remplacée, l’opération est arrêtée. Une version antérieure reste consultable dans Metadata, sans édition. Les tags peuvent viser la version choisie si le service et le compte le permettent.

La lecture nécessite normalement s3:GetObject ou s3:GetObjectVersion. La réécriture demande l’accès au contenu source et l’écriture de destination, notamment s3:PutObject, ainsi que les droits du chiffrement et des protections. Une archive doit être lisible avant réécriture.

La lecture des tags nécessite s3:GetObjectTagging, ou s3:GetObjectVersionTagging pour une version. Leur remplacement nécessite s3:PutObjectTagging ou s3:PutObjectVersionTagging. Pour vider les tags, Remove tags détermine les permissions : DeleteObjectTagging utilise s3:DeleteObjectTagging ou s3:DeleteObjectVersionTagging ; PutObjectTagging with an empty TagSet utilise les permissions de remplacement. S3Client n’essaie pas une autre méthode après un refus.

Ouvrez File > Accounts…, sélectionnez le compte, cliquez sur Edit…, puis Capabilities > Object tags. Réglez Read tags et Tag editing sur Current object only ou Current object and specific versions selon le service. Read tags > Unavailable empêche la consultation ; Tag editing > Unavailable autorise la consultation si la lecture est disponible, mais désactive l’édition. Choisissez aussi Remove tags selon l’API acceptée. La préservation des tags pendant les copies dépend des options d’envoi avec le contenu et de CopyObject tags, indépendamment de l’édition des tags source. Ces réglages ne créent aucune permission S3.

Dans les réglages Capabilities > Object tags, Current object verification propose Response version header ou Versioned read and HEAD check. Le second choix exige la lecture de tags des versions. Si une observation de l’objet courant fournit un identifiant de version, S3Client lit les tags de cette version, puis effectue un HEAD supplémentaire pour vérifier qu’elle est toujours courante. Autorisez aussi la lecture versionnée des tags et HEAD, notamment s3:GetObjectVersionTagging et s3:GetObject sur Amazon S3. Une contradiction ou une disparition interrompt la préparation. La modification logique de l’objet courant reste sans versionId. Une version exacte immuable n’ajoute pas ce contrôle ; une version null mutable exige aussi la vérification de l’identité du contenu. Response version header conserve le parcours Amazon S3 sans HEAD supplémentaire.

Modifier les métadonnées

La réécriture écrit sous la même clé. Une version source à identifiant immuable conserve ses métadonnées. Avec le versionnement activé, la copie crée une nouvelle version ; avec le versionnement suspendu, elle peut remplacer la version null. Elle peut changer la date de dernière modification et nécessiter des requêtes ou transferts. S3Client prépare la préservation du chiffrement, des tags et des protections lorsqu’ils sont accessibles. Lorsque les opérations ACL du compte sont activées, il prépare aussi la conservation de l’ACL ; les permissions masquées par le service ne peuvent pas être copiées et l’application avertit lorsque ce risque existe.

Si Enable ACL operations for this account est décoché, la réécriture utilise le défaut de destination sans requête ni en-tête ACL. Elle ne garantit pas la conservation de l’ACL existante si le service l’utilise encore. Cette désactivation ne dispense pas des droits nécessaires aux autres propriétés. Voir les effets de la désactivation locale.

  1. Ouvrez Properties > Metadata sur l’objet courant ou sur la dernière version sélectionnée comme indiqué ci-dessus.
  2. Cliquez sur Add, ou sélectionnez une ligne et cliquez sur Edit. Un double-clic ouvre aussi l’éditeur.
  3. Choisissez User-defined ou System-defined dans Type.
  4. Renseignez Key et Value, puis cliquez sur OK dans l’éditeur.
  5. Pour retirer des lignes, sélectionnez-les, cliquez sur Remove et confirmez.
  6. Vérifiez la liste finale et cliquez sur OK dans les propriétés pour lancer l’écriture.
  7. Après l’opération, actualisez le panneau et ouvrez Metadata sur l’objet courant ou la nouvelle version pour contrôler le résultat.

Avec User-defined, saisissez le suffixe ; l’éditeur ajoute x-amz-meta-. Les noms x-amz-* sont normalisés en minuscules. Ajouter une clé présente remplace sa valeur.

Clé systèmeUtilisation
Cache-ControlDirectives de cache : max-age=, no-cache, no-store, etc. Complétez les directives qui attendent une valeur.
Content-DispositionPrésentation du téléchargement, par exemple attachment.
Content-EncodingEncodage réel du contenu, par exemple gzip. Ce champ ne compresse pas le fichier.
Content-LanguageLangue du contenu.
Content-TypeType MIME. Choisissez un type connu ou saisissez une autre valeur.
ExpiresExpiration HTTP, dans le fuseau affiché. Elle ne supprime pas l’objet et ne remplace pas le cycle de vie.
x-amz-website-redirect-locationDestination de redirection pour l’hébergement web S3.

L’éditeur ponctuel exige une valeur non vide et un nom valide pour un en-tête HTTP. Les valeurs ne peuvent pas contenir de retour à la ligne. Taille, ETag et date gérés par S3 ne sont pas modifiables ici. The service omitted some metadata from the response, so it cannot be edited safely. indique une réponse incomplète ; l’édition est bloquée pour éviter une perte.

S3Client limite séparément les métadonnées système éditables et les métadonnées utilisateur à 2 048 octets chacune, en additionnant les noms et valeurs des en-têtes. MetadataTooLarge bloque l’envoi lorsque l’une de ces limites est dépassée : réduisez les valeurs ou retirez des champs.

Si CopyObject tags est réglé sur Tagging directive must match the metadata directive, une réécriture de métadonnées exige de lire les tags source pour les préserver. Une lecture impossible arrête la préparation avant la réécriture. La lecture suffit : Tag editing peut rester Unavailable lorsque les tags eux-mêmes ne sont pas modifiés.

Modifier les tags

L’écriture remplace l’ensemble de tags. Retirer les tags ne supprime pas l’objet, mais peut modifier l’effet des politiques et règles qui les utilisent.

  1. Ouvrez Properties > Tags et attendez le chargement.
  2. Cliquez sur Add pour ouvrir Tag.
  3. Renseignez Key et Value, puis validez avec OK.
  4. Utilisez Edit sur une ligne existante ou Remove sur les lignes à retirer.
  5. Vérifiez le compteur et la liste finale.
  6. Cliquez sur OK dans les propriétés. Si la liste devient vide, confirmez Delete object tags.
  7. Rouvrez Tags sur la même cible pour contrôler les valeurs.

Un objet accepte au maximum 10 tags. Les clés sont uniques, sensibles à la casse et non vides, avec une limite de 128 caractères ; les valeurs peuvent être vides et sont limitées à 256 caractères. Certains caractères, comme de nombreux emoji, comptent pour deux dans ces limites. Utilisez des lettres, nombres, espaces ou _ . : / = + - @ ; aws: est réservé. Voir les contraintes AWS des tags.

Unable to read object tags: signale une lecture échouée, par exemple faute de permission ; l’éditeur reste indisponible. Si S3Client ne peut pas enregistrer les tags reçus sans risque de perte, ils restent en lecture seule.

S3Client vérifie à nouveau l’objet ciblé et ses tags avant de les enregistrer. Si l’objet, les tags ou les réglages du compte ont changé, l’opération peut s’arrêter ; rouvrez alors les propriétés. Un échec de modification des tags n’annule pas les autres changements déjà appliqués.

Combiner des changements

Les changements de métadonnées, de classe et de chiffrement nécessitant une copie sont regroupés pour éviter des réécritures séparées. Lorsque des changements de tags accompagnent une réécriture, ils s’appliquent à l’objet ou à la version que celle-ci crée. Les tags et une restauration doivent être soumis séparément : Restore and an object tag change must be submitted separately. demande de terminer l’une avant l’autre.

Sur un bucket ou dossier, Modify child objects… permet des changements de métadonnées et tags en lot. Modify child object versions… modifie les tags des versions, mais ne réécrit pas leurs métadonnées. Consultez les objets enfants et la sélection et l’aperçu.

Pour plusieurs objets sélectionnés, utilisez Properties puis l’onglet concerné. Les valeurs observées peuvent différer ; seuls vos changements explicites sont appliqués. Voir les propriétés de plusieurs objets.