Boto S3 delete_keys 方法指示不存在的键被删除

Boto S3 delete_keys method indicating non-existent keys as being deleted

我 运行 在 s3 中使用 boto 的 delete_keys() 命令遇到以下问题。

这是我的测试场景:

import boto

conn = boto.connect_s3()
bucket = conn.get_bucket('mybucket')

key1 = boto.s3.key.Key('bucket','not_a_real_key1')
key2 = boto.s3.key.Key('bucket','not_a_real_key2')

result_set = bucket.delete_keys([key1,key2])

#the following should not print anything
for v in result_set.deleted:
  print v

#the following should return the two keys
for v in result_set.errors:
  print v

根据注释行,由于这两个键不存在,我假设它们将被标记为错误而不是已删除。

这是标准行为吗?我宁愿不使用 Key.exists() 方法,因为我要遍历大量键,这样效率很低。

提前致谢。

这是 S3 的预期行为。当您删除一个不存在的键时,无论是单独删除还是在批量删除操作中,任何不存在的键都将被视为已删除的键,并且不会返回任何错误。