【发布时间】:2014-02-12 07:50:34
【问题描述】:
我想用 Boto 删除多个 GCS 密钥。在它的documentation 中,它表明有一个多对象删除方法(delete_keys),但是我无法让它工作。
根据article,Amazon S3 是可能的:
s3 = boto.connect_s3()
bucket = s3.get_bucket("basementcoders.logging")
result = bucket.delete_keys([key.name for key in bucket if key.name[-1] == '6'])
result.deleted
但是,当我为 Google Storage 尝试相同的操作时,它不起作用:
bucket = BotoConnection().get_bucket(bucketName)
keys = [key for key in bucket]
print len(keys)
result = bucket.delete_keys(keys)
print result.deleted
print result.errors
Traceback (most recent call last):
File "gcsClient.py", line 166, in <module>
GcsClient.deleteMultipleObjects('debug_bucket')
File "gcsClient.py", line 155, in deleteMultipleObjects
result = bucket.delete_keys(keys)
File "/usr/local/lib/python2.7/dist-packages/boto/s3/bucket.py", line 583, in delete_keys
while delete_keys2(headers):
File "/usr/local/lib/python2.7/dist-packages/boto/s3/bucket.py", line 582, in delete_keys2
body)
boto.exception.GSResponseError: GSResponseError: 400 Bad Request
【问题讨论】:
-
您应该向 boto 提问。 github.com/boto/boto/issues
标签: python-2.7 amazon-s3 boto google-cloud-storage