J'ai un fichier contenu dans une clé dans mon seau S3. Je veux créer une nouvelle clé, qui contiendra le même fichier. Est-il possible de faire sans télécharger ce fichier? Je cherche une solution en Python (et de préférence la librairie boto).Comment cloner une clé dans Amazon S3 en utilisant Python (et boto)?
Répondre
S3 permet la copie d'un objet à l'autre. L'opération CopyObject crée une copie d'un objet lorsque vous spécifiez la clé et le compartiment d'un objet source ainsi que la clé et le compartiment d'une destination cible. Vous ne savez pas si boto a une implémentation compacte.
En parcourant le code source de boto, j'ai trouvé que l'objet Clé avait une méthode de "copie". Merci pour votre suggestion sur l'opération CopyObject.
Où seau est le seau de destination:
bucket.copy_key(new_key,source_bucket,source_key)
Cela lit réellement la clé et la place dans le nouveau seau - ce qui n'est pas ce que vous voulez. Pardon. –
Je ne crois pas que ce soit exact. C'est la meilleure réponse IMO. La méthode 'copy_key' transmet l'en-tête' x-amz-copy-source' dans une requête PUT, qui demande à S3 de copier directement d'une région à l'autre, sans le télécharger sur votre machine. – sergiopereira
Voici les docs: http://boto.cloudhackers.com/en/latest/ref/s3.html#boto.s3.bucket.Bucket.copy_key – creimers
Bien que personne n'a demandé, je pensais que ce serait peut-être utile pour montrer comment faire avec simples3
:
>>> b.copy("my_bucket/file.txt", "file_copy.txt", acl="public")
Je ne suis pas sûr de ce que Boto fait ici, mais il est à noter que les permissions (ACL) pas seront copiées par S3, elles seront réinitialisées à "private" si rien d'autre n'est spécifié. Pour copier l'ACL, vous devez d'abord le demander.
Je seconde ce commentaire concernant les permissions (après avoir rencontré un bug) 'dest_bucket .copy_key (key.name, src_bucket_name, key.name, preserve_acl = True) ' – nsof
Notez que la méthode 'copy' de l'objet Key a un paramètre "preserve_acl" (False par défaut) qui va copier la liste de contrôle d'accès de la source vers l'objet de destination.
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. ClickOnce et Amazon S3
- 2. Télécharger l'image en utilisant Amazon S3
- 3. Transfert de fichiers en vrac Amazon Python S3 via Python
- 4. Téléchargement vers Amazon S3 en utilisant cURL/libcurl
- 5. Enregistrer l'image de l'URL vers Amazon S3 en utilisant PHP
- 6. Autorisations Amazon S3
- 7. Client REST pour Amazon s3 dans J2ME
- 8. Création d'une solution de sauvegarde Amazon EC2 sur Amazon S3
- 9. S3 Amazon C# (SOAP vs REST)
- 10. Amazon S3 - Association externe Bucket APi
- 11. Toute personne utilisant réellement Mosso Files (concurrent Amazon S3)?
- 12. Comment télécharger un fichier avec django (python) et s3?
- 13. Uploads de fichiers Google App Engine et Amazon S3
- 14. Amazon S3 pour les réseaux sociaux?
- 15. Client Amazon S3 basé sur SOAP
- 16. Amazon S3 Redirect sur accès refusé
- 17. Répertorier des répertoires à un niveau donné dans Amazon S3
- 18. Comment cloner une liste générique en Java?
- 19. amazon s3 développeur compte gratuit à des fins de test
- 20. Amazon S3 temporaire URL à l'image fonctionne dans IE et Firefox mais pas Safari
- 21. Une fonction définie par l'utilisateur mysql convient-elle à la signature de l'URL Amazon S3?
- 22. Alternative à Amazon S3 pour le centre de données?
- 23. Amazon EC2 et EBS utilisant Windows AMIs
- 24. Téléchargement vers Amazon S3 Services à partir de l'application iPhone
- 25. Extension/remplacement de Html.Image pour Amazon S3 (ou autre CDN)
- 26. Comment séquencer des événements en PHP pour télécharger des fichiers sur Amazon S3
- 27. Bibliothèque .NET ou application asp.net pour Amazon S3
- 28. Comment sécuriser mes photos Amazon S3 tout en les rendant accessibles via des URL?
- 29. Comment calculer la consommation de bande passante de transfert d'un fichier stocké dans Amazon S3?
- 30. Cloner MovieClip en temps réel
Aide à la copie de la méthode dans le module boto.s3.key: 'copie (self, dst_bucket, dst_key, les métadonnées = None, reduced_redundancy = False, preserve_acl = False, encrypt_key = Faux)' de boto. s3.key.Key instance Copiez cette clé dans un autre compartiment. –