【ceph】s3cmd 创建bucket名称大小写问题

问题

在使用 s3cmd 创建 bucket 名称时发现必须使用首字母大写的名称才可以创建成功否则报错,但是按照 s3 标准 bucket 名称只能包含小写字母,数字、中横杠(-)、点号(.)命名,而且 s3 的 python 接口也是按照标准的 bucket 命名规范进行操作的,如果用 s3cmd 创建的首字母大写的bucket是不能被python接口操作的。

成功

# s3cmd mb s3://Czsss
Bucket 's3://Czsss/' created

失败

# s3cmd mb s3://czsss
ERROR: [Errno -2] Name or service not known
ERROR: Connection Error: Error resolving a server hostname.
Please check the servers address specified in 'host_base', 'host_bucket', 'cloudfront_host', 'website_endpoint'
# s3cmd mb s3://czsss-xxxx
ERROR: [Errno -2] Name or service not known
ERROR: Connection Error: Error resolving a server hostname.
Please check the servers address specified in 'host_base', 'host_bucket', 'cloudfront_host', 'website_endpoint'

文件

s3cmd --configure 生成的配置文件如下

cat /root/.s3cfg
access_key = QFBD6HTA7KVCQ4FF0XGT
secret_key = 5yfezCjCiZxK8icwiG3MUWYD54jkU36f9cmEfaRO
host_base = s3-beta5.51wyq.cn:7480
host_bucket = %(bucket)s.s3-beta5.51wyq.cn:7480
simpledb_host = s3-beta5.51wyq.cn:7480
cloudfront_host = s3-beta5.51wyq.cn:7480
website_endpoint = http://%(bucket)s.s3-beta5.51wyq.cn:7480/

解决

s3cmd --configure 重新生成配置文件,这里 host_base 和 host_bucket 使用 ip:port 的方式表示。

cat /root/.s3cfg
access_key = QFBD6HTA7KVCQ4FF0XGT
secret_key = 5yfezCjCiZxK8icwiG3MUWYD54jkU36f9cmEfaRO
host_base = 10.10.10.27:7480
host_bucket = 10.10.10.27:7480
simpledb_host = sdb.amazonaws.com
cloudfront_host = cloudfront.amazonaws.com
website_endpoint = http://%(bucket)s.s3-website-%(location)s.amazonaws.com/

参考

//www.greatytc.com/p/effb23ea7b5a
https://github.com/s3tools/s3cmd/issues/1026
https://docs.aws.amazon.com/AmazonS3/latest/dev/VirtualHosting.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容