【问题标题】:Multi object delete in Boto Google Cloud StorageBoto Google Cloud Storage 中的多对象删除
【发布时间】: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

【问题讨论】:

标签: python-2.7 amazon-s3 boto google-cloud-storage


【解决方案1】:

这使用了 Google Cloud Storage 不支持的 S3 的多对象删除 API。因此,谷歌云存储不可能这样做 - 您需要为每个键调用一次 delete_key ()。

【讨论】:

  • 知道它是否仍然相同?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-09
相关资源
最近更新 更多