s3cmd 是用于创建S3桶,上传,检索和管理数据到对象存储命令行实用程序。 本文将指导linux下安装s3cmd程序,以及对象存储服务桶和对象数据管理,包括创建桶、上传、检索、删除及本地与对象存储服务间数据同步等。本文以下内容将以CentOS 7.3的弹性云服务器为例,windows操作系统使用类似。

1. 安装s3cmd

1
$ yum -y install s3cmd

2. 配置s3cmd

执行 $ s3cmd --configure生成配置文件,一路Enter,注意跳过认证并保存配置

1
2
3
4
5
6
......
...
Test access with supplied credentials? [Y/n] n

Save settings? [y/N] y
Configuration saved to '/root/.s3cfg'

修改一下几项:

1
2
3
4
5
6
$ vim /root/.s3cfg
access_key = xxx
secret_key = xxx
host_base = ip:port
host_bucket = ip/kucketname
use_https = False

其中,access_key和secret_key是在本地创建S3用户时获得,host_base是S3服务所使用的ip地址(包括端口 号),host_bucket为S3用户下的一个bucket(可在配置之后再创建,但该字段不能为空)

3. 使用s3cmd

通过s3cmd –help查看具体使用方法;

  • 列举所有 Buckets
    $ 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
  • 设置S3 bucket的Public权限
    s3cmd setacl s3://myexamplebucket.calvium.com/ --acl-public --recursive