Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
CopyObject (API SOAP)
Nota
Le API SOAP per Amazon S3 non sono disponibili per i nuovi clienti, con la fine del ciclo di vita prevista per il 31 agosto 2025. Ti consigliamo di utilizzare l'API REST o gli AWS SDK.
Description
L'CopyObjectoperazione crea una copia di un oggetto quando si specificano la chiave e il bucket di un oggetto sorgente e la chiave e il bucket di una destinazione di destinazione.
Quando si copia un oggetto, è possibile conservare tutti i metadati (impostazione predefinita) o specificarne di nuovi. Tuttavia, l'ACL non viene conservato ed è impostato private per l'utente che effettua la richiesta. Per sovrascrivere l'impostazione ACL predefinita, specifica un nuovo ACL quando generi una richiesta di copia. Per ulteriori informazioni, consulta Gestione degli accessi con le ACL.
Tutte le richieste di copia devono essere autenticate. Inoltre, è necessario disporre dell'accesso in lettura all'oggetto sorgente e dell'accesso in scrittura al bucket di destinazione. Per ulteriori informazioni, vedere Utilizzo dell'accesso di autenticazione.
Per copiare un oggetto solo in determinate condizioni, ad esempio se l'Etag corrisponde o se l'oggetto è stato modificato prima o dopo una data specificata, usa i parametri di richiestaCopySourceIfUnmodifiedSince, CopyIfUnmodifiedSinceCopySourceIfMatch, o. CopySourceIfNoneMatch
Nota
Potrebbe essere necessario configurare il timeout del socket dello stack SOAP per copiare oggetti di grandi dimensioni.
Sintassi della richiesta
<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>
Parametri della richiesta
| Nome | Description | Richiesto |
|---|---|---|
SourceBucket
|
Il nome del bucket di origine. Tipo: stringa Impostazione predefinita: nessuna Vincoli: un bucket di origine valido. |
Sì |
SourceKey
|
Il nome chiave dell'oggetto sorgente. Tipo: stringa Impostazione predefinita: nessuna Vincoli: la chiave per un oggetto sorgente valido a cui si dispone dell'accesso in LETTURA. |
Sì |
DestinationBucket
|
Nome del bucket di destinazione. Tipo: stringa Impostazione predefinita: nessuna Vincoli: è necessario disporre dell'accesso WRITE al bucket di destinazione. |
Sì |
DestinationKey
|
La chiave dell'oggetto di destinazione. Tipo: stringa Impostazione predefinita: nessuna Vincoli: è necessario disporre dell'accesso WRITE al bucket di destinazione. |
Sì |
MetadataDirective
|
Specifica se i metadati vengono copiati dall'oggetto di origine o sostituiti con i metadati forniti nella richiesta. Tipo: stringa Predefinito: COPY Valori validi: COPY | REPLACE Vincoli: valori diversi |
No |
Metadata
|
Specifica le coppie nome-valore dei metadati da impostare per l'oggetto. Se MetadataDirective è impostato su, tutti i metadati vengono ignorati. Tipo: stringa Impostazione predefinita: nessuna Vincoli: nessuno. |
No |
AccessControlList
|
Consente l'accesso agli utenti tramite indirizzi e-mail o ID utente canonico. Tipo: stringa Impostazione predefinita: nessuna Vincoli: nessuno |
No |
CopySourceIfMatch
|
Copia l'oggetto se il relativo tag di entità (ETag) corrisponde al tag specificato; altrimenti restituisce un. PreconditionFailed Tipo: stringa Impostazione predefinita: nessuna Vincoli: nessuno. Se l'Etag non corrisponde, l'oggetto non viene copiato. |
No |
CopySourceIfNoneMatch
|
Copia l'oggetto se il relativo tag di entità (ETag) è diverso dall'Etag specificato; altrimenti restituisce un errore. Tipo: stringa Impostazione predefinita: nessuna Vincoli: nessuno. |
No |
CopySourceIfUnmodifiedSince
|
Copia l'oggetto se non è stato modificato dall'ora specificata; altrimenti restituisce un PreconditionFailed. Tipo: DateTime Impostazione predefinita: nessuna |
No |
CopySourceIfModifiedSince
|
Copia l'oggetto se è stato modificato dall'ora specificata; altrimenti restituisce un errore. Tipo: DateTime Impostazione predefinita: nessuna |
No |
Sintassi della risposta
<CopyObjectResponse xmlns="http://bucket_name.s3.amazonaws.com/2006-03-01"> <CopyObjectResponse> <ETag>"etag"</ETag> <LastModified>timestamp</LastModified> </CopyObjectResponse> </CopyObjectResponse>
Elementi di risposta
Di seguito è riportato un elenco di elementi di risposta.
Nota
L'API SOAP non restituisce spazi bianchi aggiuntivi. Gli spazi bianchi aggiuntivi vengono restituiti solo dall'API REST.
| Nome | Description |
|---|---|
Etag
|
Restituisce l'etag del nuovo oggetto. L'ETag riflette solo le modifiche al contenuto di un oggetto, non i suoi metadati. Tipo: stringa Antenato: CopyObjectResult |
LastModified
|
Restituisce la data dell'ultima modifica dell'oggetto. Tipo: stringa Antenato: CopyObjectResult |
Per informazioni sugli elementi di risposta generali, vedere Utilizzo delle intestazioni di risposta agli errori REST.
Errori speciali
Non ci sono errori speciali per questa operazione. Per informazioni sugli errori generali di Amazon S3, consultaElenco dei codici di errore.
Esempi
In questo esempio viene copiato l'oggetto flotsam dal bucket pacific all'oggetto jetsam del bucket atlantic conservandone i metadata.
Richiesta di esempio
<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>
Risposta di esempio
<CopyObjectResponse xmlns="http://doc.s3.amazonaws.com/2006-03-01"> <CopyObjectResponse> <ETag>"828ef3fdfa96f00ad9f27c383fc9ac7f"</ETag> <LastModified>2008-02-18T13:54:10.183Z</LastModified> </CopyObjectResponse> </CopyObjectResponse>
Questo esempio copia l'oggetto «tweedledee» dal bucket Wonderland all'oggetto «tweedledum» del bucket Wonderland, sostituendone i metadati.
Richiesta di esempio
<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>
Risposta di esempio
<CopyObjectResponse xmlns="http://doc.s3.amazonaws.com/2006-03-01"> <CopyObjectResponse> <ETag>"828ef3fdfa96f00ad9f27c383fc9ac7f"</ETag> <LastModified>2008-02-18T13:54:10.183Z</LastModified> </CopyObjectResponse> </CopyObjectResponse>