Ceph

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

2018-12-10  本文已影响0人  小醉90s

问题

在使用 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/

参考

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

上一篇下一篇

猜你喜欢

热点阅读