通过 s3cmd 进行连接

本文档主要介绍如何通过 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
回到顶部