Comment renommer une clé S3 dans un seau avec boto?
Vous ne pouvez pas renommer les fichiers dans Amazon S3. Vous pouvez les copier avec un nouveau nom, puis supprimer l'original, mais il n'y a pas de fonction de renommage appropriée.
Voici un exemple de fonction Python qui copiera un objet S3 à l’aide de Boto 2:
import boto
def copy_object(src_bucket_name,
src_key_name,
dst_bucket_name,
dst_key_name,
metadata=None,
preserve_acl=True):
"""
Copy an existing object to another location.
src_bucket_name Bucket containing the existing object.
src_key_name Name of the existing object.
dst_bucket_name Bucket to which the object is being copied.
dst_key_name The name of the new object.
metadata A dict containing new metadata that you want
to associate with this object. If this is None
the metadata of the original object will be
copied to the new object.
preserve_acl If True, the ACL from the original object
will be copied to the new object. If False
the new object will have the default ACL.
"""
s3 = boto.connect_s3()
bucket = s3.lookup(src_bucket_name)
# Lookup the existing object in S3
key = bucket.lookup(src_key_name)
# Copy the key back on to itself, with new metadata
return key.copy(dst_bucket_name, dst_key_name,
metadata=metadata, preserve_acl=preserve_acl)
Il n'y a pas de méthode directe pour renommer le fichier dans s3. Ce que vous devez faire est de copier le fichier existant avec un nouveau nom (il suffit de définir la clé cible) et de supprimer l'ancien Je vous remercie