Ho un file contenuto in una chiave nel mio secchio S3. Voglio creare una nuova chiave, che conterrà lo stesso file. È possibile fare senza scaricare quel file? Sto cercando una soluzione in Python (e preferibilmente libreria boto).Come clonare una chiave in Amazon S3 usando Python (e boto)?
risposta
S3 consente la copia dell'oggetto per oggetto. L'operazione CopyObject crea una copia di un oggetto quando si specifica la chiave e il bucket di un oggetto di origine e la chiave e il bucket di una destinazione di destinazione. Non sono sicuro se boto abbia un'implementazione compatta.
Navigazione attraverso il codice sorgente di boto Ho scoperto che l'oggetto chiave ha un metodo di "copia". Grazie per il tuo suggerimento sull'operazione CopyObject.
Dove secchio è il secchio destinazione:
bucket.copy_key(new_key,source_bucket,source_key)
In realtà legge la chiave e la inserisce nel nuovo bucket, che non è quello che desideri. Scusate. –
Non credo che sia accurato. Questa è la migliore risposta IMO. Il metodo 'copy_key' passa l'intestazione' x-amz-copy-source' in una richiesta PUT, che dice a S3 di copiare direttamente da una regione all'altra, senza scaricare sul tuo computer. – sergiopereira
Ecco i documenti: http://boto.cloudhackers.com/en/latest/ref/s3.html#boto.s3.bucket.Bucket.copy_key – creimers
Anche se nessuno ha chiesto, ho pensato che potrebbe essere rilevante per mostrare come fare questo con simples3
:
>>> b.copy("my_bucket/file.txt", "file_copy.txt", acl="public")
io non sono sicuro di quello che Boto fa qui, ma vale la pena notare che le autorizzazioni (ACL) saranno non da copiare da S3, verrà ripristinato su "privato" se non viene specificato nient'altro. Per copiare l'ACL, devi prima chiederlo.
I secondo questo commento riguardante le autorizzazioni (dopo aver incontrato un bug) 'dest_bucket .copy_key (key.name, src_bucket_name, key.name, preserve_acl = True) ' – nsof
Si noti che il metodo "copia" sull'oggetto chiave ha un parametro "preserve_acl" (False per impostazione predefinita) che copierà l'ACL dell'origine sull'oggetto di destinazione.
from boto.s3.key import Key
#Get source key from bucket by name
source_key = source_bucket.get_key(source_key_name)
#Copy source key to a new bucket with a new key name (can be the same as source)
#Note: source_key is Key
source_key.copy(dest_bucket_name,dest_key_name)
#The signature of boto's Key class:
def copy(self, dst_bucket, dst_key, metadata=None,
reduced_redundancy=False, preserve_acl=False,
encrypt_key=False, validate_dst_bucket=True)
#set preserve_acl=True to copy the acl from the source key
- 1. Creare un file in s3 public usando python e boto
- 2. Boto - Caricamento file in una posizione specifica su Amazon S3
- 3. Utilizzando la libreria boto di Amazon s3, come posso ottenere l'URL di una chiave salvata?
- 4. Creare directory in Amazon S3 usando python, boto3
- 5. Come spostare i file tra due bucket Amazon S3 usando boto?
- 6. S3 usando boto e SigV4 - parametro host mancante
- 7. Boto S3 getta httplib.IncompleteRead occasionalmente
- 8. Come chiudere la connessione Boto S3?
- 9. Django Boto S3 Access
- 10. Boto s3 get_metadata
- 11. Leggere un file riga per riga da S3 usando boto?
- 12. git e Amazon s3
- 13. Impossibile impostare i permessi dei file in S3 usando boto e django
- 14. Amazon S3 La chiave specificata non esiste dopo il successo get_key
- 15. differenza tra Amazon s3 e Amazon redshift
- 16. boto get md5 s3 file
- 17. Come generare un url temporaneo per caricare file su Amazon S3 con la libreria boto?
- 18. Come configurare django-compressor e django-staticfiles con Amazon S3?
- 19. Errore S3 di Amazon S3
- 20. Metti il file su Amazon S3 usando il caricamento multipart
- 21. TipoErrore caricamento di file di immagine su Amazon S3 in Django utilizzando la libreria BOTO
- 22. Come gzip durante il caricamento in s3 utilizzando boto
- 23. python s3 usando boto, dice 'errore attributo:' str 'oggetto non ha attributo' connessione '
- 24. Come definire i permessi di Amazon S3
- 25. Amazon S3 Gli URL preselezionati sfuggono alle barre nella chiave
- 26. Come ottenere la programmazione MD5 Checksum dei file di Amazon S3 utilizzando Boto
- 27. Come limitare l'accesso all'API di Amazon S3?
- 28. zcat su amazon s3
- 29. Offline Amazon S3
- 30. Autorizzazioni Amazon S3
Guida sul metodo di copia nel modulo boto.s3.key: 'copia (self, dst_bucket, dst_key, metadati = Nessuno, reduced_redundancy = False, preserve_acl = False, ENCRYPT_KEY = False)' del boto. s3.key.Key instance Copia questa chiave in un altro bucket. –