本文档主要介绍如何通过 s3cmd 进行连接。
配置 Access Key、Secret Key、S3 Endpoint、HTTPS protocol 和 DNS-style
$ ./s3cmd --configure Enter new values or accept defaults in brackets with Enter. Refer to user manual for detailed description of all options. Access key and Secret key are your identifiers for Amazon S3. Leave them empty for using the env variables. Access Key: ABCDEFGHIJKLMNOPQRST Secret Key: abcdefghijklmnopqrstuvwxyz0123456789ABCD Default Region [US]: Use "s3.amazonaws.com" for S3 Endpoint and not modify it to the target Amazon S3. S3 Endpoint [s3.amazonaws.com]: 127.0.0.1:8002 Use "%(bucket)s.s3.amazonaws.com" to the target Amazon S3. "%(bucket)s" and "%(location)s" vars can be used if the target S3 system supports dns based buckets. DNS-style bucket+hostname:port template for accessing a bucket [%(bucket)s.s3.amazonaws.com]: mybucket.127.0.0.1:8002 Encryption password is used to protect your files from reading by unauthorized persons while in transfer to S3 Encryption password: Path to GPG program [/usr/bin/gpg]: When using secure HTTPS protocol all communication with Amazon S3 servers is protected from 3rd party eavesdropping. This method is slower than plain HTTP, and can only be proxied with Python 2.7 or newer Use HTTPS protocol [Yes]: No On some networks all internet access must go through a HTTP proxy. Try setting it here if you can't connect to S3 directly HTTP Proxy server name: New settings: Access Key: ABCDEFGHIJKLMNOPQRST Secret Key: abcdefghijklmnopqrstuvwxyz0123456789ABCD Default Region: US S3 Endpoint: 127.0.0.1:8002 DNS-style bucket+hostname:port template for accessing a bucket: mybucket.127.0.0.1:8002 Encryption password: Path to GPG program: /usr/bin/gpg Use HTTPS protocol: False HTTP Proxy server name: HTTP Proxy server port: 0 Test access with supplied credentials? [Y/n] Please wait, attempting to list all buckets... Success. Your access key and secret key worked fine :-) Now verifying that encryption works... Not configured. Never mind. Save settings? [y/N] y Configuration saved to '/home/sdbadmin/.s3cfg'
列举所有 bucket(bucket 相当于根文件夹)
s3cmd ls
创建 bucket,且 bucket 名称是唯一的,不能重复
s3cmd mb s3://my-bucket-name
删除空 bucket
s3cmd rb s3://my-bucket-name
列举 bucket 中的内容
s3cmd ls s3://my-bucket-name
上传 file.txt
到某个 bucket
s3cmd put file.txt s3://my-bucket-name/file.txt
上传并将权限设置为所有人可读
s3cmd put --acl-public file.txt s3://my-bucket-name/file.txt
批量上传文件
s3cmd put ./* s3://my-bucket-name/
下载文件
s3cmd get s3://my-bucket-name/file.txt file.txt
批量下载
s3cmd get s3://my-bucket-name/* ./
删除文件
s3cmd del s3://my-bucket-name/file.txt
获取对应的 bucket 所占用的空间大小
s3cmd du -H s3://my-bucket-name