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 |
Non |
Metadata
|
Spécifie les paires nom-valeur des métadonnées à définir pour l'objet. Si cette valeur MetadataDirective est définie sur 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>