1、简介
S3cmd是一个免费的命令行工具客户端,用于在Amazon S3和其他使用S3协议的云存储服务提供商上传,检索和管理数据。它适合熟悉命令行程序的高级用户。它也是批处理脚本和S3自动备份的理想选择,由cron等触发。
2、安装
2.1、S3cmd环境要求
S3cmd在Linux(Fedora,RedHat,SuSe,Ubuntu,Debian等)和Apple MAC上运行。需要Python 2.6或更高版本。S3cmd version 2也与Python 3.x兼容。
2.2、安装步骤
这里我们以CentOS7为系统环境介绍S3cmd的安装和使用。
1)yum安装:yum install s3cmd -y
2)github安装:
cp -rf s3cmd/ /usr/local/
ln -s /usr/local/s3cmd/s3cmd /usr/bin/s3cmd
3)安装成功后查看版本:s3cmd --version
3、配置
S3cmd默认读取用户主目录下的.s3cfg文件,可以通过-c指定其他配置文件。
初次安装后可以运行s3cmd命令直接配置,更简便的方式是通过vi ~/.s3cfg配置,配置文件如下:
最简化配置
[default]
access_key = *** # 修改为测试用户的Access Key
secret_key = *** # 修改为测试用户的Secret Key
host_base = ***.***.***.*** # 修改为测试集群对象服务地址
host_bucket = ***.***.***.***/%(bucket) # 修改为测试集群对象服务地址,
use_https = False # 是否使用https
其他配置项:
bucket_location = cn # 创建bucket时的location
enable_multipart = True # 默认开启分段上传,超过15M大小的都会采用分段上传
encrypt = False # 关闭加密
human_readable_sizes = True # 开启后ls对象时以人类可读的方式K/M/G等展示
# 象大小信息
multipart_chunk_size_mb = 15 # 默认最大段大小,小于rgw的
# rgw_multipart_min_part_size配置项中
# 设置的大小无效
multipart_max_chunks = 10000 # 默认最大分段数,大于rgw的rgw_multipart_part_upload_limit配置项无效
signature_v2 = False # 是否启用V2签名
storage_class = ** # 存储级别
4、命令
4.1、常用命令列表
功能类型 |
功能命令 |
管理桶 |
创建桶:s3cmd mb s3://BUCKET |
删除桶:s3cmd rb s3://BUCKET(桶非空时可以加-r选项删除) |
|
列出桶(或对象):s3cmd ls [s3://BUCKET[/PREFIX]] |
|
查看桶的使用量:s3cmd du [s3://BUCKET[/PREFIX]] |
|
设置桶(或对象)的ACL信息:s3cmd setacl s3://BUCKET[/OBJECT] |
|
管理对象 |
上传对象:s3cmd put FILE [FILE...]s3://BUCKET[/PREFIX] |
下载对象:s3cmd get s3://BUCKET/OBJECT LOCAL_FILE |
|
删除对象:s3cmd del s3://BUCKET/OBJECT |
|
删除对象:s3cmd rm s3://BUCKET/OBJECT |
|
查看桶的分段上传(s3cmd超过15M的默认启用分段上传):s3cmd multipart s3://BUCKET [Id] |
|
终止桶的分段上传:s3cmd abortmp s3://BUCKET/OBJECT Id |
|
列出已经上传的分段:s3cmd listmp s3://BUCKET/OBJECT Id |
|
其他功能 |
Sign arbitrary string using the secret key |
查看桶或者对象信息:s3cmd info s3://BUCKET[/OBJECT] |
|
同步本地目录结构到存储桶:s3cmd sync LOCAL_DIR s3://BUCKET[/PREFIX] or s3://BUCKET[/PREFIX] LOCAL_DIR |
4.2、常用命令实例
1)创建桶:s3cmd mb s3://test-bucket-1
2)列出桶:s3cmd ls
3)删除桶:s3cmd rb s3://test-bucket-1
4)查看桶使用量:s3cmd du s3://test-bucket-1
5)上传对象:s3cmd put test_file s3://test-bucket-1
6)下载对象:s3cmd get s3://test-bucket-1/test_file test_file.download
7)删除对象:s3cmd del s3://test-bucket-1/test_file