Copia di oggetti da o verso un bucket di directory - Amazon Simple Storage Service

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à.

Copia di oggetti da o verso un bucket di directory

L'operazione copy crea una copia di un oggetto già archiviato in Amazon S3. Puoi copiare oggetti tra bucket di directory e bucket per uso generico. Inoltre, puoi copiare oggetti all'interno di un bucket e tra bucket dello stesso tipo, ad esempio, da un bucket di directory all'altro.

Nota

La copia di oggetti tra diversi Regioni AWS non è supportata quando il bucket di origine o di destinazione si trova in una AWS zona locale. I bucket di origine e di destinazione devono avere lo stesso Regione AWS padre. I bucket di origine e di destinazione possono essere di tipo diverso (zona di disponibilità o zona locale).

È possibile creare una copia di un oggetto fino a 5 GB in una singola operazione atomica. Tuttavia, per copiare un oggetto di dimensioni superiori a 5 GB, è necessario utilizzare le operazioni API di caricamento multiparte. Per ulteriori informazioni, consulta Utilizzo dei caricamenti multiparte con i bucket di directory.

Autorizzazioni

Per copiare oggetti, è necessario disporre delle seguenti autorizzazioni:

  • Per copiare oggetti da un bucket di directory a un altro, è necessario disporre dell'autorizzazione s3express:CreateSession.

  • Per copiare gli oggetti dai bucket di directory ai bucket per uso generico, è necessario disporre dell'autorizzazione s3express:CreateSession e dell'autorizzazione s3:PutObject per scrivere la copia dell'oggetto nel bucket di destinazione.

  • Per copiare oggetti da bucket per uso generico a bucket di directory, è necessario disporre dei permessi s3express:CreateSession e s3:GetObject per leggere l'oggetto di origine che si sta copiando.

    Per ulteriori informazioni, consulta CopyObject in Amazon Simple Storage Service API Reference (Guida di riferimento per l'API di Amazon Simple Storage Service).

Crittografia

Amazon S3 esegue automaticamente la crittografa di tutti i nuovi oggetti caricati in un bucket S3. La configurazione di crittografia predefinita di un bucket S3 è sempre abilitata ed è impostata come minimo sulla crittografia lato server con chiavi gestite da Amazon S3 (SSE-S3).

Per i bucket di directory, sono supportati SSE-S3 e la crittografia lato server con chiavi AWS Key Management Service () (AWS KMS SSE-KMS). Quando il bucket di destinazione è un bucket di directory, si consiglia di utilizzare la configurazione di crittografia desiderata come crittografia predefinita per il bucket di destinazione e di non sostituire la crittografia predefinita del bucket. I nuovi oggetti vengono quindi crittografati automaticamente con le impostazioni di crittografia desiderate. Inoltre, le chiavi dei bucket S3 non sono supportate quando si copiano oggetti con crittografia SSE-KMS da bucket per uso generico a bucket di directory, da bucket di directory a bucket per uso generico o tra bucket di directory, tramite CopyObject. In questo caso, Amazon S3 effettua una chiamata AWS KMS ogni volta che viene effettuata una richiesta di copia per un oggetto crittografato con KMS. Per ulteriori informazioni sui comportamenti di sovrascrittura della crittografia nei bucket di directory, consulta Specificare la crittografia lato server con per il caricamento di nuovi oggetti. AWS KMS

Per i bucket generici, è possibile utilizzare SSE-S3 (impostazione predefinita), la crittografia lato server con () chiavi (SSE-KMS), la crittografia lato server a due livelli con chiavi AWS Key Management Service (DSSE-KMS AWS KMS) o la crittografia lato server con chiavi fornite dal cliente (SSE-C). AWS KMS

Se si effettua una richiesta di copia che specifica di utilizzare DSSE-KMS o SSE-C per un bucket di directory (sia quello di origine che quello di destinazione), la risposta restituisce un errore.

Tag

I bucket di directory non supportano i tag. Se si copia un oggetto con tag da un bucket per uso generico a un bucket di directory, si riceve una risposta HTTP 501 (Not Implemented). Per ulteriori informazioni, consulta CopyObject in Amazon Simple Storage Service API Reference (Guida di riferimento per l'API di Amazon Simple Storage Service).

ETags

ETagsI tag di entità () per S3 Express One Zone sono stringhe alfanumeriche casuali e non sono checksum. MD5 Per garantire l'integrità degli oggetti, utilizza checksum aggiuntivi.

Checksum aggiuntivi

S3 Express One Zone offre la possibilità di scegliere l'algoritmo di checksum utilizzato per convalidare i dati durante il caricamento o il download. È possibile selezionare uno dei seguenti algoritmi di controllo dell'integrità dei dati Secure Hash Algorithms (SHA) o Cyclic Redundancy Check (CRC):, C, SHA-1 e SHA-256. CRC32 CRC32 MD5i checksum basati non sono supportati con la classe di storage S3 Express One Zone.

Per ulteriori informazioni, consulta Best practice per il checksum S3 aggiuntivo.

Funzionalità supportate

Per ulteriori informazioni sulle caratteristiche di Amazon S3 supportate da S3 Express One Zone, consulta Differenze per i bucket di directory.

Nota

Le restrizioni e le limitazioni quando si copia un oggetto in un bucket di directory con la console sono le seguenti:

  • L'azione Copy si applica a tutti gli oggetti all'interno delle cartelle (prefissi) specificate. Gli oggetti aggiunti a queste cartelle mentre l'azione è in corso potrebbero essere interessati.

  • Gli oggetti crittografati con chiavi di crittografia fornite dal cliente (SSE-C) non possono essere copiati utilizzando la console S3. Per copiare oggetti crittografati con SSE-C, usa l' AWS CLI AWS SDK o l'API REST di Amazon S3.

  • Gli oggetti copiati non manterranno le impostazioni di Object Lock dagli oggetti originali.

  • Se il bucket da cui stai copiando gli oggetti utilizza l'impostazione imposta dal proprietario del bucket per S3 Object Ownership, l'oggetto non verrà copiato nella destinazione specificata. ACLs

  • Se desideri copiare oggetti in un bucket che utilizza l'impostazione forzata del proprietario del bucket per S3 Object Ownership, assicurati che il bucket di origine utilizzi anche l'impostazione applicata dal proprietario del bucket o rimuovi qualsiasi oggetto concesso dall'ACL ad altri account e gruppi. AWS

  • Gli oggetti copiati da un bucket generico a un bucket di directory non conserveranno i tag degli oggetti o i valori Etag. ACLs I valori di checksum possono essere copiati, ma non sono equivalenti a un ETag. Il valore del checksum può cambiare rispetto a quando è stato aggiunto.

  • Tutti gli oggetti copiati in un bucket della directory saranno con il proprietario del bucket impostato per la proprietà degli oggetti S3.

Per copiare un oggetto da un bucket per uso generico o da un bucket di directory a un bucket di directory
  1. Accedi a AWS Management Console e apri la console Amazon S3 all'indirizzo. https://console.aws.amazon.com/s3/

  2. Nel riquadro di navigazione a sinistra, il tipo di bucket da cui vuoi copiare gli oggetti:

    • Per copiare da un bucket per uso generico, scegli la scheda Bucket per uso generico.

    • Per copiare da un bucket di directory, scegli la scheda Bucket di directory.

  3. Scegli il bucket per uso generico o il bucket della directory che contiene gli oggetti da copiare.

  4. Scegli la scheda Objects (Oggetti). Nella pagina Oggetti, seleziona la casella di controllo a sinistra dei nomi degli oggetti da copiare.

  5. Nel menu Actions (Operazioni) scegliere Copy (Copia).

    Viene visualizzata la pagina Copia.

  6. In Destinazione, scegli Directory bucket per il tipo di destinazione. Per specificare il percorso di destinazione, scegli Sfoglia S3, navigare fino alla destinazione e scegli il pulsante di opzione a sinistra della destinazione. Seleziona Choose destination (Scegli destinazione) nell'angolo in basso a destra.

    In alternativa, immettere il percorso di destinazione.

  7. In Impostazioni di copia aggiuntive, scegli se eseguire Copia impostazioni dell'origine, Non specificare le impostazioni o Specifica le impostazioni. Copia impostazioni dell'origine è l'opzione predefinita. Se desideri copiare solo l'oggetto senza gli attributi delle impostazioni dell'origine, scegli Non specificare le impostazioni. Scegli Specifica impostazioni per specificare le impostazioni di crittografia lato server, checksum e metadati.

  8. Scegli Copy (Copia) nell'angolo in basso a destra. Amazon S3 copia gli oggetti nella destinazione.

Nota

Le restrizioni e le limitazioni quando si copia un oggetto in un bucket per uso generico con la console sono le seguenti:

  • L'azione Copy si applica a tutti gli oggetti all'interno delle cartelle (prefissi) specificate. Gli oggetti aggiunti a queste cartelle mentre l'azione è in corso potrebbero essere interessati.

  • Gli oggetti crittografati con chiavi di crittografia fornite dal cliente (SSE-C) non possono essere copiati utilizzando la console S3. Per copiare oggetti crittografati con SSE-C, usa l' AWS CLI AWS SDK o l'API REST di Amazon S3.

  • Gli oggetti copiati non manterranno le impostazioni di Object Lock dagli oggetti originali.

  • Se il bucket da cui stai copiando gli oggetti utilizza l'impostazione imposta dal proprietario del bucket per S3 Object Ownership, l'oggetto non verrà copiato nella destinazione specificata. ACLs

  • Se desideri copiare oggetti in un bucket che utilizza l'impostazione forzata del proprietario del bucket per S3 Object Ownership, assicurati che il bucket di origine utilizzi anche l'impostazione applicata dal proprietario del bucket o rimuovi qualsiasi oggetto concesso dall'ACL ad altri account e gruppi. AWS

Per copiare un oggetto da un bucket di directory in un bucket per uso generico
  1. Accedi a AWS Management Console e apri la console Amazon S3 all'indirizzo. https://console.aws.amazon.com/s3/

  2. Nel pannello di navigazione a sinistra, scegli Buckets (Bucket).

  3. Scegli la scheda Bucket di directory.

  4. Scegli il bucket della directory che contiene gli oggetti da copiare.

  5. Scegli la scheda Objects (Oggetti). Nella pagina Oggetti, seleziona la casella di controllo a sinistra dei nomi degli oggetti da copiare.

  6. Nel menu Actions (Operazioni) scegliere Copy (Copia).

  7. Alla voce Destinazione, scegli il Bucket per uso generico per il tipo di destinazione. Per specificare il percorso di destinazione, scegli Sfoglia S3, naviga fino alla destinazione e scegli il pulsante di opzione a sinistra della destinazione. Seleziona Choose destination (Scegli destinazione) nell'angolo in basso a destra.

    In alternativa, immettere il percorso di destinazione.

  8. In Impostazioni di copia aggiuntive, scegli se eseguire Copia impostazioni dell'origine, Non specificare le impostazioni o Specifica le impostazioni. Copia impostazioni dell'origine è l'opzione predefinita. Se desideri copiare solo l'oggetto senza gli attributi delle impostazioni dell'origine, scegli Non specificare le impostazioni. Scegli Specificare le impostazioni per specificare le impostazioni per la classe di archiviazione ACLs, i tag degli oggetti, i metadati, la crittografia lato server e i checksum aggiuntivi.

  9. Scegli Copy (Copia) nell'angolo in basso a destra. Amazon S3 copia gli oggetti nella destinazione.

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); } }

Il comando di copy-object esempio seguente mostra come è possibile utilizzare AWS CLI per copiare un oggetto da un bucket a un altro bucket. È possibile copiare gli oggetti tra i tipi di bucket. Per eseguire questo comando, sostituisci i segnaposto inseriti dall'utente con le tue informazioni.

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

Per ulteriori informazioni, consulta la sezione copy-object nella Documentazione di riferimento della AWS CLI .