【发布时间】:2021-08-08 15:49:25
【问题描述】:
我似乎找不到可以在同一个存储桶中移动 S3 对象的函数。我知道除了 s3 客户端之外还有其他方式,但在这种情况下我需要使用 S3 客户端。
【问题讨论】:
-
S3中没有move方法。您必须复制,然后删除旧对象。
标签: python amazon-web-services amazon-s3 boto3 boto
我似乎找不到可以在同一个存储桶中移动 S3 对象的函数。我知道除了 s3 客户端之外还有其他方式,但在这种情况下我需要使用 S3 客户端。
【问题讨论】:
标签: python amazon-web-services amazon-s3 boto3 boto
您可以使用 s3fs 模块而不是 boto3 来移动 s3 存储桶中的文件。
import s3fs
path1='s3:///bucket_name/folder1/sample_file.pkl'
path2='s3:///bucket_name/folder2/sample_file.pkl'
s3=s3fs.S3FileSystem()
s3.move(path1,path2)
如果你有凭据,你可以在 S3FileSystem 的 client_kwargs 中传递,如下所示:
import s3fs
path1='s3:///bucket_name/folder1/sample_file.pkl'
path2='s3:///bucket_name/folder2/sample_file.pkl'
credentials= {}
credentials.setdefault("region_name", r_name) # mention the region
credentials.setdefault("aws_access_key_id", a_key) # mention the access_key_id
credentials.setdefault("aws_secret_access_key", s_a_key) # mention the secret_access_key
s3=s3fs.S3FileSystem(client_kwargs=credentials)
s3.move(path1,path2)
【讨论】: