python-3.x - 使用 Python 和 Boto 3 在同一存储桶中复制 S3 对象
问题描述
我正在尝试将同一存储桶一个目录中的对象复制到另一个子目录。
方法一:
s3 = boto3.resource('s3')
copy_source = {
'Bucket': 'MY BUCKET NAME',
'Key': str(source)
}
extra_args = {
'ACL': 'public-read'
}
s3.meta.client.copy(copy_source, 'MY BUCKET NAME', str(destination), extra_args)
上面的代码引发访问被拒绝错误。
方法二:
"""
S3 delete objects
"""
s3_client = boto3.client('s3')
BUCKET = 'MY BUCKET NAME'
PREFIX = str(object)
response = s3_client.list_objects_v2(Bucket=BUCKET, Prefix=PREFIX)
for object in response['Contents']:
print('Deleting', object['Key'])
s3_client.delete_object(Bucket=BUCKET, Key=object['Key'])
这个用于删除 s3 对象。我决定先实现复制功能,然后是第二个成功的删除方法。如何复制 S3 Same Bucket 中的对象?
解决方案
推荐阅读
- html - 无法在 Chrome 上设置远程报价 sdp
- django - 如何在没有模型的模板中从视图中渲染表单?
- sql - SQL 服务(im Wamp)无法在 Windows 10 Pc 中启动
- python - 如何将上下文从向导传递到控制器并在 Odoo 12 的控制器中获取该上下文的值?
- yii2 - 阻止用户从 URL 切换
- python - 如果按钮只有类型和值,如何使用 Python 在 Web 表单上提交数据
- javascript - 在第二个 await -Async/await 之前等待第一个 await 完成
- mysql - 使用子查询连接表
- android - 使用 ARCore 添加文本视图
- go - go-cmp 在比较 2 个结构时将空接口值视为 int 和 flat64