Я хочу удалить несколько ключей GCS с Boto. В нем documentation это предполагает, что существует метод удаления нескольких объектов (delete_keys), однако я не могу заставить его работать.Удаление нескольких объектов в Boto Google Cloud Storage
Согласно этому 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 на вопрос. https://github.com/boto/boto/issues – okwap
Проблема добавлена в https://github.com/boto/boto/issues – user3222802