【问题标题】:IBM COS - can't get or create bucket with botoIBM COS - 无法使用 boto 获取或创建存储桶
【发布时间】:2018-04-03 16:18:03
【问题描述】:
from boto.s3.connection import S3Connection 
conn = S3Connection('****', '****', host='s3.eu-geo.objectstorage.softlayer.net')
mybucket = conn.get_bucket('mybucket')

返回

/anaconda3/lib/python3.6/site-packages/boto/s3/connection.py in head_bucket(self, bucket_name, headers)
    551             err.error_code = 'NoSuchBucket'
    552             err.error_message = 'The specified bucket does not exist'
--> 553             raise err
    554         else:
    555             raise self.provider.storage_response_error(

S3ResponseError: S3ResponseError: 404 Not Found

但是,如果我尝试创建存储桶:

conn.create_bucket('mybucket')

S3CreateError: S3CreateError: 409 Conflict
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><Error><Code>BucketAlreadyExists</Code><Message>Container mybucket exists</Message><Resource>/mybucket/</Resource><RequestId>****</RequestId><httpStatusCode>409</httpStatusCode></Error>

【问题讨论】:

  • 这仍然是个问题吗?

标签: ibm-cloud boto object-storage ibm-cloud-storage


【解决方案1】:

存储桶名称在 IBM Cloud 对象存储(或 AWS S3)中是普遍唯一的。存储桶的删除最终是一致的,并且需要 10 分钟才能传播,这意味着最近删除的存储桶(由您或任何其他用户)的存储桶名称将需要一些时间才能再次可用。您提到的错误说明最近删除了bucket 'mybucket',并且处于没有名字的时期。通常建议在存储桶名称之前使用一些特定的前缀,如果它是常见的(如 mybucket)。查看IBM COS API docs的这段摘录:

向空存储桶发出 DELETE 会删除该存储桶。删除存储桶后,该名称将由系统保留 10 分钟,之后将被释放以供重复使用。只能删除空存储桶。此操作不使用特定于操作的标头、查询参数或有效负载元素。

【讨论】:

    猜你喜欢
    • 2017-11-25
    • 2018-10-24
    • 1970-01-01
    • 1970-01-01
    • 2014-04-22
    • 2018-08-25
    • 2019-01-28
    • 2019-05-31
    相关资源
    最近更新 更多