The*_*ker -2 python amazon-s3 amazon-web-services python-3.x boto3
我想将文件和文件夹从一个 s3 存储桶复制到另一个存储桶。我无法通过阅读文档找到解决方案。只能从 s3 存储桶复制文件,但不能复制文件夹。这是我的代码:
import boto3
s3 = boto3.resource('s3')
copy_source = {
'Bucket': 'mybucket',
'Key': 'mykey'
}
s3.meta.client.copy(copy_source, 'otherbucket', 'otherkey')
Run Code Online (Sandbox Code Playgroud)
S3 没有任何文件夹/目录的概念。它遵循扁平结构。例如,在 UI 上,您会在 test_folder 中看到两个名为 file1.txt 和 file2.txt 的文件,但实际上两个文件的键分别为“test_folder/file1.txt”和“test_folder/file2.txt”。每个文件都使用此命名约定存储。
您可以使用下面给出的代码片段将每个密钥复制到其他存储桶。
import boto3
s3_client = boto3.client('s3')
resp = s3_client.list_objects_v2(Bucket='mybucket')
keys = []
for obj in resp['Contents']:
keys.append(obj['Key'])
s3_resource = boto3.resource('s3')
for key in keys:
copy_source = {
'Bucket': 'mybucket',
'Key': key
}
bucket = s3_resource.Bucket('otherbucket')
bucket.copy(copy_source, 'otherkey')
Run Code Online (Sandbox Code Playgroud)
如果您的源存储桶包含许多键,并且这是一次性活动,那么我建议您查看此链接。
如果需要对存储桶上的每个插入事件执行此操作,并且您需要将其复制到另一个存储桶,则可以查看此方法。
| 归档时间: |
|
| 查看次数: |
4466 次 |
| 最近记录: |