DigitalOcean Spaces 调用 list_buckets 不返回任何内容

Posted

技术标签:

【中文标题】DigitalOcean Spaces 调用 list_buckets 不返回任何内容【英文标题】:DigitalOcean Spaces Call list_buckets returns nothing 【发布时间】:2022-01-16 02:38:07 【问题描述】:

我在网上看到很多人对此有疑问,现在我自己也遇到了这个问题。我正在尝试使用 boto3 来列出 DigitalOcean Spaces 中的存储桶。它返回 200 状态代码,但是里面没有列出存储桶。奇怪的是,我可以通过代码创建一个bucket,但是我不能列出来。

人们报告说,当他们使用不同的端点 URL 时取得了成功。我使用了以下内容:

https://<space_name>.nyc3.digitaloceanspaces.com https://nyc3.digitaloceanspaces.com

他们俩都不走运。

import boto3
s3 = boto3.client('s3', region_name=region, endpoint_url=endpoint, aws_access_key_id=access_id, aws_secret_access_key=secret_key)
s3.list_buckets()

list_buckets 返回以下响应。

'ResponseMetadata': 'RequestId': 'tx00000000000010c9ce0be-0061b571d4-1800930a-nyc3c', 'HostId': '', 'HTTPStatusCode': 200, 'HTTPHeaders': 'transfer-encoding': 'chunked', 'x-amz-request-id': 'tx00000000000010c9ce0be-0061b571d4-1800930a-nyc3c', 'content-type': 'application/xml', 'date': 'Sun, 12 Dec 2021 03:51:48 GMT', 'strict-transport-security': 'max-age=15552000; includeSubDomains; preload', 'RetryAttempts': 0

【问题讨论】:

【参考方案1】:

我想通了。我创建了我的 DigitalOcean 空间并将其命名为 foobar-development。我设置了endpoint='https://nyc3.digitaloceanspaces.com'。当我执行list_buckets 时,我收到了包含我的空间名称foobar-development 的回复。所以看起来“桶”和“空间”是同义词。我以为它们是分开的,我会在空间中创建存储桶然后访问它,但不是。这不是它的工作原理。

【讨论】:

以上是关于DigitalOcean Spaces 调用 list_buckets 不返回任何内容的主要内容,如果未能解决你的问题,请参考以下文章

无法创建或更改没有主键的表 - Laravel DigitalOcean 托管数据库

解决TabError: inconsistent use of tabs and spaces in indentation

解决TabError: inconsistent use of tabs and spaces in indentation

Error:Trailing spaces not allowed no-trailing-spaces

error Mixed spaces and tabs no-mixed-spaces-and-tabs

vue 里 使用 eslint 报错 error:Mixed spaces and tabs (no-mixed-spaces-and-tabs)