View a markdown version of this page

CopyObject (API SOAP) - 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.

CopyObject (API SOAP)

Note

Les SOAP API pour Amazon S3 ne sont pas disponibles pour les nouveaux clients. Leur fin de vie est prévue le 31 août 2025. Nous vous recommandons d'utiliser l'API REST ou les AWS SDK.

Description

L'CopyObjectopération crée une copie d'un objet lorsque vous spécifiez la clé et le compartiment d'un objet source et la clé et le compartiment d'une destination cible.

Lorsque vous copiez un objet, vous pouvez conserver toutes les métadonnées (par défaut) ou spécifier de nouvelles métadonnées. Cependant, l'ACL n'est pas conservée et est configurée private pour l'utilisateur qui fait la demande. Pour modifier le paramètre ACL par défaut, spécifiez une nouvelle ACL lors de la génération d'une demande de copie. Pour de plus amples informations, veuillez consulter Utilisation des listes ACL.

Toutes les demandes de copie doivent être authentifiées. En outre, vous devez disposer d'un accès en lecture à l'objet source et d'un accès en écriture au compartiment de destination. Pour plus d'informations, consultez la section Utilisation de Auth Access.

Pour copier un objet uniquement sous certaines conditions, par exemple si l'Etag correspond ou si l'objet a été modifié avant ou après une date spécifiée, utilisez les paramètres de requêteCopySourceIfUnmodifiedSince, CopyIfUnmodifiedSinceCopySourceIfMatch, ouCopySourceIfNoneMatch.

Note

Vous devrez peut-être configurer le délai d'expiration du socket de la pile SOAP pour copier des objets volumineux.

Syntaxe de la requête

<CopyObject xmlns="http://bucket_name.s3.amazonaws.com/2006-03-01"> <SourceBucket>source_bucket</SourceBucket> <SourceObject>source_object</SourceObject> <DestinationBucket>destination_bucket</DestinationBucket> <DestinationObject>destination_object</DestinationObject> <MetadataDirective>{REPLACE | COPY}</MetadataDirective> <Metadata> <Name>metadata_name</Name> <Value>metadata_value</Value> </Metadata> ... <AccessControlList> <Grant> <Grantee xsi:type="user_type"> <ID>user_id</ID> <DisplayName>display_name</DisplayName> </Grantee> <Permission>permission</Permission> </Grant> ... </AccessControlList> <CopySourceIfMatch>etag</CopySourceIfMatch> <CopySourceIfNoneMatch>etag</CopySourceIfNoneMatch> <CopySourceIfModifiedSince>date_time</CopySourceIfModifiedSince> <CopySourceIfUnmodifiedSince>date_time</CopySourceIfUnmodifiedSince> <AWSAccessKeyId>AWSAccessKeyId</AWSAccessKeyId> <Timestamp>TimeStamp</Timestamp> <Signature>Signature</Signature> </CopyObject>

Paramètres de demande

Nom Description Obligatoire
SourceBucket

Le nom du compartiment source.

Type : Chaîne

Par défaut : aucun

Contraintes : compartiment source valide.

Oui
SourceKey

Le nom clé de l'objet source.

Type : Chaîne

Par défaut : aucun

Contraintes : clé d'un objet source valide auquel vous avez un accès READ.

Oui
DestinationBucket

Nom du compartiment de destination.

Type : Chaîne

Par défaut : aucun

Contraintes : vous devez disposer d'un accès WRITE au compartiment de destination.

Oui
DestinationKey

La clé de l'objet de destination.

Type : Chaîne

Par défaut : aucun

Contraintes : vous devez disposer d'un accès WRITE au compartiment de destination.

Oui
MetadataDirective

Spécifie si les métadonnées sont copiées depuis l'objet source ou remplacées par les métadonnées fournies dans la demande.

Type : Chaîne

Par défaut : COPIER

Valeurs valides : COPIER | REMPLACER

Contraintes : les valeurs autres que COPY ou REPLACE qui entraîneront une erreur immédiate. Vous ne pouvez pas copier un objet sur lui-même à moins que l' MetadataDirective en-tête ne soit spécifié et que sa valeur ne soit définie surREPLACE.

Non
Metadata

Spécifie les paires nom-valeur des métadonnées à définir pour l'objet. Si cette valeur MetadataDirective est définie surCOPY, toutes les métadonnées sont ignorées.

Type : Chaîne

Par défaut : aucun

Contraintes : Aucune.

Non
AccessControlList

Accorde l'accès aux utilisateurs par adresse e-mail ou identifiant utilisateur canonique.

Type : Chaîne

Par défaut : aucun

Contraintes: Aucune

Non
CopySourceIfMatch

Copie l'objet si sa balise d'entité (ETag) correspond à la balise spécifiée ; sinon, renvoie un PreconditionFailed.

Type : Chaîne

Par défaut : aucun

Contraintes : Aucune. Si l'Etag ne correspond pas, l'objet n'est pas copié.

Non
CopySourceIfNoneMatch

Copie l'objet si sa balise d'entité (ETag) est différente de l'Etag spécifié ; sinon, renvoie une erreur.

Type : Chaîne

Par défaut : aucun

Contraintes : Aucune.

Non
CopySourceIfUnmodifiedSince

Copie l'objet s'il n'a pas été modifié depuis l'heure spécifiée ; sinon, renvoie un PreconditionFailed.

Type : DateTime

Par défaut : aucun

Non
CopySourceIfModifiedSince

Copie l'objet s'il a été modifié depuis l'heure spécifiée ; sinon, renvoie une erreur.

Type : DateTime

Par défaut : aucun

Non

Syntaxe de la réponse

<CopyObjectResponse xmlns="http://bucket_name.s3.amazonaws.com/2006-03-01"> <CopyObjectResponse> <ETag>"etag"</ETag> <LastModified>timestamp</LastModified> </CopyObjectResponse> </CopyObjectResponse>

Eléments de réponse

Voici une liste des éléments de réponse.

Note

L'API SOAP ne renvoie pas d'espace blanc supplémentaire. Les espaces supplémentaires ne sont renvoyés que par l'API REST.

Nom Description
Etag

Renvoie l'etag du nouvel objet. L'ETag reflète uniquement les modifications apportées au contenu d'un objet, pas à ses métadonnées.

Type : Chaîne

Ancêtre : CopyObjectResult

LastModified

Renvoie la date à laquelle l'objet a été modifié pour la dernière fois.

Type : Chaîne

Ancêtre : CopyObjectResult

Pour plus d'informations sur les éléments de réponse généraux, consultez la section Utilisation des en-têtes de réponse aux erreurs REST.

Erreurs spéciales

Il n'y a pas d'erreur particulière pour cette opération. Pour plus d'informations sur les erreurs générales d'Amazon S3, consultezListe des codes d'erreur.

Exemples

L’exemple copie l’objet flotsam du compartiment pacific vers l’objet jetsam du compartiment atlantic, en préservant les métadonnées.

Exemple de demande

<CopyObject xmlns="http://doc.s3.amazonaws.com/2006-03-01"> <SourceBucket>pacific</SourceBucket> <SourceObject>flotsam</SourceObject> <DestinationBucket>atlantic</DestinationBucket> <DestinationObject>jetsam</DestinationObject> <AWSAccessKeyId>AKIAIOSFODNN7EXAMPLE</AWSAccessKeyId> <Timestamp>2008-02-18T13:54:10.183Z</Timestamp> <Signature>Iuyz3d3P0aTou39dzbq7RrtSFmw=</Signature> </CopyObject>

Exemple de réponse

<CopyObjectResponse xmlns="http://doc.s3.amazonaws.com/2006-03-01"> <CopyObjectResponse> <ETag>"828ef3fdfa96f00ad9f27c383fc9ac7f"</ETag> <LastModified>2008-02-18T13:54:10.183Z</LastModified> </CopyObjectResponse> </CopyObjectResponse>

Cet exemple copie l'objet « tweedledee » du compartiment Wonderland vers l'objet « tweedledum » du bucket Wonderland, en remplaçant ses métadonnées.

Exemple de demande

<CopyObject xmlns="http://doc.s3.amazonaws.com/2006-03-01"> <SourceBucket>wonderland</SourceBucket> <SourceObject>tweedledee</SourceObject> <DestinationBucket>wonderland</DestinationBucket> <DestinationObject>tweedledum</DestinationObject> <MetadataDirective >REPLACE</MetadataDirective > <Metadata> <Name>Content-Type</Name> <Value>text/plain</Value> </Metadata> <Metadata> <Name>relationship</Name> <Value>twins</Value> </Metadata> <AWSAccessKeyId>AKIAIOSFODNN7EXAMPLE</AWSAccessKeyId> <Timestamp>2008-02-18T13:54:10.183Z</Timestamp> <Signature>Iuyz3d3P0aTou39dzbq7RrtSFmw=</Signature> </CopyObject>

Exemple de réponse

<CopyObjectResponse xmlns="http://doc.s3.amazonaws.com/2006-03-01"> <CopyObjectResponse> <ETag>"828ef3fdfa96f00ad9f27c383fc9ac7f"</ETag> <LastModified>2008-02-18T13:54:10.183Z</LastModified> </CopyObjectResponse> </CopyObjectResponse>

Ressources connexes