boto3 - 如果 source_list 中的项目存在于 target_list 中,则从 S3 存储桶中删除 s3 对象
问题描述
如果 source_list 中的项目存在于 target_list 中,我正在尝试从 S3 存储桶中删除一个 s3 对象。
源列表:
['ALH_LXN_RESPONSE_9.json',
'ALH_LXN_RESPONSE_10.json']
目标列表:
['ALH-LXN-RESPONSE.json',
'ALH_LXN_RESPONSE_1.json',
'ALH_LXN_RESPONSE_2.json',
'ALH_LXN_RESPONSE_3.json',
'ALH_LXN_RESPONSE_4.json',
'ALH_LXN_RESPONSE_5.json',
'ALH_LXN_RESPONSE_6.json',
'ALH_LXN_RESPONSE_7.json',
'ALH_LXN_RESPONSE_8.json',
'ALH_LXN_RESPONSE_9.json',
'ALH_LXN_RESPONSE_10.json']
在这种情况下,我需要删除“ALH_LXN_RESPONSE_9.json”、“ALH_LXN_RESPONSE_10.json”。
s3_resource = session.resource('s3')
my_bucket = s3_resource.Bucket("dw-duwr-84829492409")
解决方案
试试这个示例代码
def delete_objects_from_S3():
source_list = ['ALH_LXN_RESPONSE_9.json', 'ALH_LXN_RESPONSE_10.json']
target_list = ['ALH-LXN-RESPONSE.json', 'ALH_LXN_RESPONSE_1.json', 'ALH_LXN_RESPONSE_2.json',
'ALH_LXN_RESPONSE_3.json', 'ALH_LXN_RESPONSE_9.json', 'ALH_LXN_RESPONSE_10.json']
commonObjects = [e for e in source_list if e in '\n'.join(target_list)]
s3 = boto3.resource('s3')
for item in commonObjects:
s3.Object('your_bucketName', item).delete()
推荐阅读
- javascript - 倒数计时器进入负数而不是替换html
- javascript - 为示例创建表单。使用 2 个 iframe。在 iframe “A” 上的源代码 php 在 iframe “B” 上的结果
- docker - Docker Swarm 上的气流无法识别环境变量
- r - 与 guix 相比,nix 中 rPackages(包的 pin 版本)的可重复性更好
- python - 当 True 时在蜡烛上方绘制标记 - Plotly
- c++ - precomp.h 中的循环依赖
- javascript - 如何使用javascript将表单字段重置为默认值
- javascript - 如何从嵌套在 div 深处的子项(按钮元素)中选择一个遥远的父项?
- android - 如何在 React Native 中使屏幕的显示尺寸相对于 iOS 和 Android/Samsung?
- ubuntu - 在 apt-installed phpmyadmin 上启用 2FA