Copier des objets depuis ou vers un bucket de répertoire - Amazon Simple Storage Service

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Copier des objets depuis ou vers un bucket de répertoire

L'opération de copie crée une copie d'un objet déjà stocké dans Amazon S3. Vous pouvez copier des objets entre des compartiments de répertoires et des compartiments à usage général. Vous pouvez également copier des objets au sein d’un compartiment et entre des compartiments du même type, par exemple, d’un compartiment de répertoires à un autre.

Vous pouvez créer une copie d'un objet d'une capacité maximale de 5 Go en une seule opération atomique. Toutefois, pour copier un objet dont la taille est supérieure à 5 Go, vous devez utiliser les API opérations de téléchargement partitionné. Pour de plus amples informations, veuillez consulter Utilisation de téléchargements partitionnés avec des compartiments de répertoires.

Autorisations

Pour copier des objets, vous devez disposer des autorisations suivantes :

  • Pour copier des objets d’un compartiment de répertoires vers un autre, vous devez disposer de l’autorisation s3express:CreateSession.

  • Pour copier des objets à partir de compartiments de répertoires vers des compartiments à usage général, vous devez disposer de l’autorisation s3express:CreateSession et de l’autorisation s3:PutObject permettant d’écrire la copie des objets dans le compartiment de destination.

  • Pour copier des objets depuis des compartiments à usage général vers des compartiments de répertoire, vous devez disposer de l's3express:CreateSessionautorisation et de s3:GetObject l'autorisation nécessaires pour lire l'objet source copié.

    Pour plus d’informations, consultez .CopyObjectdans le Amazon Simple Storage Service API Reference.

Chiffrement

Amazon S3 chiffre automatiquement tous les nouveaux objets chargés dans un compartiment S3. La configuration de chiffrement par défaut d'un compartiment S3 est toujours activée et est au minimum définie sur le chiffrement côté serveur avec des clés gérées par Amazon S3 (SSE-S3).

Pour les compartiments de répertoire, SSE -S3 et le chiffrement côté serveur avec AWS Key Management Service (AWS KMS) clés (SSE-KMS) sont pris en charge. Lorsque le compartiment de destination est un compartiment de répertoire, nous recommandons que le chiffrement par défaut du compartiment de destination utilise la configuration de chiffrement souhaitée et que vous ne remplaciez pas le chiffrement par défaut du compartiment. Les nouveaux objets sont ensuite automatiquement chiffrés avec les paramètres de chiffrement souhaités. De plus, les clés de compartiment S3 ne sont pas prises en charge lorsque vous copiez SSE des objets KMS chiffrés depuis des compartiments à usage général vers des compartiments de répertoire, des compartiments de répertoire vers des compartiments à usage général, ou entre des compartiments de répertoire, via CopyObject. Dans ce cas, Amazon S3 effectue un appel à AWS KMS chaque fois qu'une demande de copie est faite pour un objet KMS chiffré. Pour plus d'informations sur les comportements de remplacement du chiffrement dans les compartiments de répertoire, voir Spécifier le chiffrement côté serveur avec AWS KMS pour les téléchargements de nouveaux objets.

Pour les compartiments à usage général, vous pouvez utiliser SSE -S3 (valeur par défaut), le chiffrement côté serveur avec AWS Key Management Service () clés (-AWS KMS), le chiffrement double couche côté serveur avec des clés (SSE-KMS) ou le chiffrement côté serveur avec des AWS KMS clés fournies par le client (DSSE-CKMS). SSE

Si vous faites une demande de copie qui indique d'utiliser DSSE - KMS ou SSE -C pour un compartiment de répertoire (le compartiment source ou de destination), la réponse renvoie une erreur.

Balises

Les compartiments de répertoires ne prennent pas en charge les balises. Si vous copiez un objet comportant des balises d'un compartiment à usage général vers un compartiment de répertoire, vous recevez une HTTP 501 (Not Implemented) réponse. Pour plus d’informations, consultez .CopyObjectdans le Amazon Simple Storage Service API Reference.

ETags

Les balises d'entité (ETags) pour S3 Express One Zone sont des chaînes alphanumériques aléatoires et ne sont pas des MD5 checksums. Pour garantir l'intégrité des objets, utilisez des checksums supplémentaires.

Sommes de contrôle supplémentaires

S3 Express One Zone vous offre la possibilité de choisir l’algorithme de somme de contrôle utilisé pour valider vos données pendant le chargement ou le téléchargement. Vous pouvez sélectionner l'un des algorithmes de hachage sécurisé (SHA) ou de contrôle de redondance cyclique (CRC) suivants pour vérifier l'intégrité des données : CRC32CRC32C, SHA -1 et -256. SHA MD5les checksums basés sur la base de données ne sont pas pris en charge avec la classe de stockage S3 Express One Zone.

Pour de plus amples informations, veuillez consulter Bonnes pratiques supplémentaires en matière de somme de contrôle S3.

Fonctionnalités prises en charge

Pour plus d'informations sur les fonctionnalités Amazon S3 prises en charge pour S3 Express One Zone, consultezDifférences entre les compartiments de répertoires.

Note

Les restrictions et limitations lorsque vous copiez un objet dans un bucket de répertoire à l'aide de la console sont les suivantes :

  • L'Copyaction s'applique à tous les objets des dossiers spécifiés (préfixes). Les objets ajoutés à ces dossiers alors que l'action est en cours peuvent être affectés.

  • Les objets chiffrés à l'aide des clés de chiffrement fournies par le client (SSE-C) ne peuvent pas être copiés à l'aide de la console S3. Pour copier des objets chiffrés avec SSE -C, utilisez le AWS CLI AWS SDK, ou Amazon S3 RESTAPI.

  • Les objets copiés ne conserveront pas les paramètres de verrouillage des objets d'origine.

  • Si le compartiment à partir duquel vous copiez des objets utilise le paramètre imposé par le propriétaire du compartiment pour la propriété des objets S3, l'objet ne ACLs sera pas copié vers la destination spécifiée.

  • Si vous souhaitez copier des objets dans un compartiment qui utilise le paramètre imposé par le propriétaire du compartiment pour la propriété des objets S3, assurez-vous que le compartiment source utilise également le paramètre imposé par le propriétaire du compartiment, ou supprimez toute attribution d'ACLobjet à d'autres AWS comptes et groupes.

  • Les objets copiés d'un compartiment à usage général vers un compartiment de répertoire ne conserveront pas les balises d'objet ni les valeurs Etag. ACLs Les valeurs de checksum peuvent être copiées, mais ne sont pas équivalentes à un Etag. La valeur de la somme de contrôle peut changer par rapport au moment où elle a été ajoutée.

  • Tous les objets copiés dans un compartiment de répertoire seront soumis au paramètre appliqué par le propriétaire du compartiment pour la propriété des objets S3.

Pour copier un objet d'un bucket à usage général ou d'un bucket de répertoire vers un bucket de répertoire
  1. Connectez-vous à la console Amazon S3 AWS Management Console et ouvrez-la à l'adresse https://console.aws.amazon.com/s3/.

  2. Dans le panneau de navigation de gauche, choisissez Compartiments.

  3. Choisissez le compartiment à partir duquel vous souhaitez copier des objets :

    • Pour effectuer une copie à partir d'un bucket à usage général, choisissez l'onglet Buckets à usage général.

    • Pour effectuer une copie à partir d'un bucket de répertoire, choisissez l'onglet Buckets de répertoire.

  4. Choisissez le compartiment à usage général ou le compartiment de répertoire contenant les objets que vous souhaitez copier.

  5. Cliquez sur l'onglet Objets. Sur la page Objets, cochez la case située à gauche des noms des objets que vous souhaitez copier.

  6. Dans le menu Actions, choisissez Copy (Copier).

    La page Copier apparaît.

  7. Sous Destination, choisissez Directory bucket pour votre type de destination. Pour spécifier le chemin de destination, choisissez Parcourir S3, naviguez jusqu'à la destination, puis cliquez sur le bouton d'option situé à gauche de la destination. Choisissez Choose destination (Choisir une destination) en bas à droite.

    Vous pouvez également saisir le chemin de destination.

  8. Sous Paramètres de copie supplémentaires, choisissez si vous souhaitez copier les paramètres source, Ne pas spécifier de paramètres ou Spécifier les paramètres. L'option par défaut consiste à copier les paramètres de la source. Si vous souhaitez uniquement copier l'objet sans les attributs des paramètres source, choisissez Ne pas spécifier les paramètres. Choisissez Spécifier les paramètres pour définir les paramètres du chiffrement côté serveur, des checksums et des métadonnées.

  9. En bas à droite, choisissez Copy (Copier). Amazon S3 copie votre objet dans la destination.

Note

Les restrictions et limitations lorsque vous copiez un objet dans un bucket à usage général à l'aide de la console sont les suivantes :

  • L'Copyaction s'applique à tous les objets des dossiers spécifiés (préfixes). Les objets ajoutés à ces dossiers alors que l'action est en cours peuvent être affectés.

  • Les objets chiffrés à l'aide des clés de chiffrement fournies par le client (SSE-C) ne peuvent pas être copiés à l'aide de la console S3. Pour copier des objets chiffrés avec SSE -C, utilisez le AWS CLI AWS SDK, ou Amazon S3 RESTAPI.

  • Les objets copiés ne conserveront pas les paramètres de verrouillage des objets d'origine.

  • Si le compartiment à partir duquel vous copiez des objets utilise le paramètre imposé par le propriétaire du compartiment pour la propriété des objets S3, l'objet ne ACLs sera pas copié vers la destination spécifiée.

  • Si vous souhaitez copier des objets dans un compartiment qui utilise le paramètre imposé par le propriétaire du compartiment pour la propriété des objets S3, assurez-vous que le compartiment source utilise également le paramètre imposé par le propriétaire du compartiment, ou supprimez toute attribution d'ACLobjet à d'autres AWS comptes et groupes.

Pour copier un objet d’un compartiment de répertoires vers un compartiment à usage général
  1. Connectez-vous à la console Amazon S3 AWS Management Console et ouvrez-la à l'adresse https://console.aws.amazon.com/s3/.

  2. Dans le panneau de navigation de gauche, choisissez Compartiments.

  3. Choisissez l'onglet Buckets du répertoire.

  4. Choisissez le compartiment de répertoire qui contient les objets que vous souhaitez copier.

  5. Cliquez sur l'onglet Objets. Sur la page Objets, cochez la case située à gauche des noms des objets que vous souhaitez copier.

  6. Dans le menu Actions, choisissez Copy (Copier).

  7. Sous Destination, choisissez Bucket à usage général pour votre type de destination. Pour spécifier le chemin de destination, choisissez Browse S3, naviguez jusqu'à la destination, puis cliquez sur le bouton d'option situé à gauche de la destination. Choisissez Choose destination (Choisir une destination) en bas à droite.

    Vous pouvez également saisir le chemin de destination.

  8. Sous Paramètres de copie supplémentaires, choisissez si vous souhaitez copier les paramètres source, Ne pas spécifier de paramètres ou Spécifier les paramètres. L'option par défaut consiste à copier les paramètres de la source. Si vous souhaitez uniquement copier l'objet sans les attributs des paramètres source, choisissez Ne pas spécifier les paramètres. Choisissez Spécifier les paramètres pour définir les paramètres de classe de stockageACLs, les balises d'objet, les métadonnées, le chiffrement côté serveur et les sommes de contrôle supplémentaires.

  9. En bas à droite, choisissez Copy (Copier). Amazon S3 copie votre objet dans la destination.

SDK for Java 2.x
public static void copyBucketObject (S3Client s3, String sourceBucket, String objectKey, String targetBucket) { CopyObjectRequest copyReq = CopyObjectRequest.builder() .sourceBucket(sourceBucket) .sourceKey(objectKey) .destinationBucket(targetBucket) .destinationKey(objectKey) .build(); String temp = ""; try { CopyObjectResponse copyRes = s3.copyObject(copyReq); System.out.println("Successfully copied " + objectKey +" from bucket " + sourceBucket +" into bucket "+targetBucket); } catch (S3Exception e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } }

L'copy-objectexemple de commande suivant montre comment vous pouvez utiliser le AWS CLI pour copier un objet d'un compartiment vers un autre compartiment. Vous pouvez copier des objets d'un type de compartiment à l'autre. Pour exécuter cette commande, remplacez les espaces réservés saisis par l'utilisateur par vos propres informations.

aws s3api copy-object --copy-source SOURCE_BUCKET/SOURCE_KEY_NAME --key TARGET_KEY_NAME --bucket TARGET_BUCKET_NAME

Pour plus d’informations, consultez .copy-objectdans la référence de AWS CLI commande.