[英]Looping through a file to delete files from s3 - boto3?
这可能是非常基本的,但我是新手,所以请多多包涵!
我得到了存储在 s3 中的需要永久删除的对象列表。 这个列表只是一个我无法控制的 .txt 文件,但它确实包含所有需要删除的特定键,例如:
folder1/file1.xyz
folder1/file2.xyz
folder2/file1.xyz
这就是我正在尝试的,它似乎并没有真正删除对象:
import boto3
s3 = boto3.client('s3')
s3bucket = "my bucket"
trn = "list.txt"
with open(trn) as trn_list:
for line in trn_list:
s3.delete_object(Bucket=s3bucket, Key=line)
如果我指定一个要删除的键而不是循环遍历文件,它会起作用并且 object 被删除,例如:
s3.delete_object(Bucket=s3bucket, Key=folder1/file1.xyz)
但是当我尝试将删除包含在循环中时,它似乎永远不会删除任何内容。 如果我运行循环以仅打印(行) ,那么它会正确打印出 .txt 文件中的每个键。
我需要以不同的方式执行此操作吗? 任何建议表示赞赏。
当您遍历每一行时,该行将包含字符串中的换行符,因此您需要在将其用作调用 boto3 的键之前将其删除:
for line in trn_list:
s3.delete_object(Bucket=s3bucket, Key=line.strip())
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.