【发布时间】:2021-01-07 21:44:57
【问题描述】:
在 Airflow 中使用 S3DeleteObjectsOperator 不会删除指定 S3 存储桶中的对象,即使任务显示删除成功
delete_s3bucket_files = S3DeleteObjectsOperator(
task_id='delete_s3bucket_files',
start_date=start_date,
bucket='*********************',
keys='*********************',
aws_conn_id='aws_default',
)
所以任务运行显示密钥已被删除,但它仍然存在于我的 S3 存储桶中。
[2019-09-16 11:39:25,775] {base_task_runner.py:101} INFO - Job 1346: Subtask delete_s3bucket_files [2019-09-16 11:39:25,775] {cli.py:517} INFO - Running <TaskInstance: daily_database_transfer.delete_s3bucket_files 2019-09-16T09:39:16.873030+00:00 [running]> on host Saurav-macbook.local
[2019-09-16 11:39:25,971] {s3_delete_objects_operator.py:83} INFO - Deleted: ['*********************']
我在这里遗漏了什么,或者有没有办法找出为什么它不删除对象?
【问题讨论】:
-
这里很少快速检查 [1] 你确定
boto3客户端选择了正确的region_name;除非明确指定/覆盖,它通常默认为us-east-1? [2] 您确定触发此任务的 EC2 机器对所述存储桶和前缀(路径)具有delete_object权限吗? -
区域名称应该没有问题,因为卸载和复制等其他功能和工作完美。我不确定我是否理解
delete_object特权。你能解释一下如何改变吗?