S3Cmd

s3cmd是一款使用Python语言开发的免费的命令行工具,它使用Amazon S3协议来管理对象存储系统上的数据。s3cmd目前有超过60个命令行选项, 包括分传上传、加密、增量备份、s3 同步、ACL和元数据管理, 设置s3桶大小、桶策略等。

安装

下载s3cmd的工具包

git clone https://github.com/s3tools/s3cmd.git

当前下载版本为1.6.1。

安装配置

进入s3cmd目录,执行configure命令,配置 access_key、secret_key、host_base、host_bucket信息。

s3cmd --configure

执行configure命令后,会生成 .s3cfig 配置文件,可通过编辑该配置文件进行修改,文件具体内容如下:

[default]
access_key = 3af5f2e2581542bda9ac22cd7601eb8f
access_token = 
add_encoding_exts =
add_headers =
bucket_location = US
ca_certs_file =
cache_file =
check_ssl_certificate = True
check_ssl_hostname = True
cloudfront_host = cloudfront.amazonaws.com
default_mime_type = binary/octet-stream
delay_updates = False
delete_after = False
delete_after_fetch = False
delete_removed = False
dry_run = False
enable_multipart = True
encoding = UTF-8
encrypt = False
expiry_date =
expiry_days =
expiry_prefix =
follow_symlinks = False
force = False
get_continue = False
gpg_command = /usr/bin/gpg
gpg_decrypt = %(gpg_command)s -d --verbose --no-use-agent --batch --yes --passphrase-fd %(passphrase_fd)s -o %(output_file)s %(input_file)s
gpg_encrypt = %(gpg_command)s -c --verbose --no-use-agent --batch --yes --passphrase-fd %(passphrase_fd)s -o %(output_file)s %(input_file)s
gpg_passphrase =
guess_mime_type = True
#host_base = s3.amazonaws.com
host_base = s3-cn-suzhou.chinac.com
#host_bucket = %(bucket)s.s3.amazonaws.com
host_bucket = s3-cn-suzhou.chinac.com
human_readable_sizes = False
invalidate_default_index_on_cf = False
invalidate_default_index_root_on_cf = True
invalidate_on_cf = False
kms_key =
limitrate = 0
list_md5 = False
log_target_prefix =
long_listing = False
max_delete = -1
mime_type =
multipart_chunk_size_mb = 15
multipart_max_chunks = 10000
preserve_attrs = True
progress_meter = True
put_continue = False
recursive = False
recv_chunk = 65536
reduced_redundancy = False
requester_pays = False
restore_days = 1
secret_key = e2d0c6fba6ad832cf8acb7bc89d76a97
send_chunk = 65536
reduced_redundancy = False
requester_pays = False
restore_days = 1
secret_key = e2d0c6fba6ad832cf8acb7bc89d76a97
send_chunk = 65536
server_side_encryption = False
signature_v2 = False
simpledb_host = sdb.amazonaws.com
skip_existing = False
socket_timeout = 300
stats = False
stop_on_error = False
storage_class =
urlencoding_mode = normal
use_https = False
use_mime_magic = True
verbosity = WARNING
website_endpoint = http://%(bucket)s.s3-website-%(location)s.amazonaws.com/
website_error =
website_index = index.html

请根据具体环境修改access_key和secret_key,保存配置并退出。

  • access_key对应于用户控制台->账户管理->ACCESS KEY->Access Key;
  • secret_key对应于用户控制台->账户管理->ACCESS KEY->Access Key Secret;
  • host_base 对应于COS服务接入地址,如: s3-cn-suzhou.chinac.com 或 s3-cn-suzhou.chinac.com:80;
  • host_bucket对应于COS服务接入地址,如: s3-cn-suzhou.chinac.com 或 s3-cn-suzhou.chinac.com:80;

管理Bucket

S3的桶包括如下一些限制:

  • 桶名必须全局(如所有s3用户)唯一;
  • 桶名只能包括字母、点号(.)或破折号(-);
  • 每个用户最多100桶;

获取Bucket列表

s3cmd ls

创建Bucket

s3cmd mb s3://my-new-bucket

显示Bucket内容

s3cmd ls s3://my-new-bucket

删除Bucket

s3cmd rb s3://my-new-bucket

提示

  • 如果Bucket非空,即已有文件或进行中的分片上传,则无法被删除Bucket,s3cmd会输出BucketNotEmpty Error;
  • 如果Bucket不存在,则输出NoSuchBucket Error;
  • 对于非空Bucket,可以通过边列举边删除Object的方法清空Bucket后,然后再删除Bucket。谨慎使用-f或--force选项强制删除;
  • 一旦Bucket被删除,Bucket名可能会被其他用户申请。

管理Object

上传文件

s3cmd put some-file.xml s3://my-bucket/some-file.xml

下载文件

s3cmd get s3://my-bucket/some-file.xml some-file-2.xml

删除文件

s3cmd del s3://my-bucket/some-file.xml

分块上传

s3cmd put 10m.obj s3://bucket1/hello.txt --multipart-chunk-size-mb=5

提示

  • multipart-chunk-size-mb用来设置分块大小,最小值为5MB, 最大值为5GB, 默认值为15MB。

显示bucket内未完成的分块上传

s3cmd multipart s3://bucket1

查看分块上传进度

s3cmd listmp s3://bucket1/hello.txt YWRlOWFjYmMtOGMxNS00OWYzLTg4Y2QtZWJhZTQ1ZWExNjc4

提示

  • YWRlOWFjYmMtOGMxNS00OWYzLTg4Y2QtZWJhZTQ1ZWExNjc4是uploadId, 在s3cmd multipart返回中可看到此信息。

取消分块上传

s3cmd abortmp s3://bucket1/hello.txt YWRlOWFjYmMtOGMxNS00OWYzLTg4Y2QtZWJhZTQ1ZWExNjc4

提示

  • YWRlOWFjYmMtOGMxNS00OWYzLTg4Y2QtZWJhZTQ1ZWExNjc4是uploadId, 在s3cmd multipart返回中可看到此信息。

不兼容的操作

  • 拷贝(cp)
  • 移动(mv)

results matching ""

    No results matching ""