是否可以检查bucket名称是否已经存在?

2024-05-20 18:42:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个方法需要一个名称来创建一个新的bucket。在

如果bucket name已经存在,我想显示一条消息“bucket name already exist”。在

是否可以检查bucket名称是否已经存在?在

def createBucket(bucketName):
    c = boto.s3.connect_to_region("us-east-1")
    # if bucketName exist: 
        print "bucket name already exist"
    else:
        bucket = c.create_bucket(bucketName)

bucket = createBucket(raw_input("Bucket name: "))   

Tags: to方法name名称消息s3bucketdef
3条回答

lookup应该可以工作(虽然我现在无法尝试)。在

当每个位置的bucket名称已经被占用时,amazonweb服务将为您提供一个自定义的S3CreateError异常。在

>>> bucket = conn.create_bucket('mybucket')
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
  File "boto/connection.py", line 285, in create_bucket
    raise S3CreateError(response.status, response.reason)
boto.exception.S3CreateError: S3Error[409]: Conflict

你可以用这个例外来处理你的案子。在

^{pr2}$

假设博图.cfg配置为区域、安全、访问等

from boto.s3.connection import S3Connection
conn = S3Connection()
if conn.lookup('bucketnamehere') is not None:
     print('bucket already exists')

如果你的boto不支持连接查找,您可能希望使用head而不是get(请参见:http://boto.readthedocs.org/en/latest/ref/s3.html#module-boto.s3.connection

^{pr2}$

相关问题 更多 >