通过s3cmd操作对象存储
安装s3cmd
# Ubuntu/Debian
sudo apt-get install s3cmd
# CentOS/RHEL
sudo yum install s3cmd
# macOS (使用Homebrew)
brew install s3cmd
# 最通用的方法:使用pip(Python包管理器)
pip install s3cmd
配置s3cmd
vim ~/.s3cfg
输入如下内容:
[default]
bucket_location = huabei1
access_key = xxxx
secret_key = xxxx
default_mime_type = binary/octet-stream
enable_multipart = True
encoding = UTF-8
host_base = eos-cn-huabei1.ebcoud.com
host_bucket = eos-cn-huabei1.ebcloud.com%(bucket)
multipart_chunk_size_mb = 5
multipart_copy_chunk_size_mb = 1024
multipart_max_chunks = 10000
send_chunk = 65536
signature_v2 = False
use_https = true
其中:host_base
,命名规范为:eos-{region-label}.ebcloud.com
,华北一区为:eos-cn-huanbei1.ebcloud.com
其中:access_key
,secret_key
可以在,对象存储->访问密钥,进行创建,如下:
注意:
access_key
和secret_key
仅创建时可以进行下载,后续无法通过英博云控制台下载,请下载后妥善保管。
不同分区的eos url
分区名称 | 分区Label | eos url |
---|---|---|
华北一区 | cn-huabei1 | eos-cn-huabei1.ebcloud.com |
华北二区 | cn-huabei2 | 暂不支持 |
使用s3cmd进行对象存储操作
桶操作
# 列出所有桶
s3cmd ls
# 创建新桶
s3cmd mb s3://my-backup-bucket
# 删除空桶
s3cmd rb s3://my-old-bucket
# 查看桶的大小和文件数量
s3cmd du s3://my-bucket
文件操作
# 上传单个文件
s3cmd put 本地文件路径 s3://桶名称/目标路径
# 递归上传整个目录(同步)
s3cmd sync 本地目录/ s3://桶名称/目标路径/
# 示例1:上传 backup.tar.gz 到桶的根目录
s3cmd put /backup/backup.tar.gz s3://my-backup-bucket/
# 示例2:同步本地 www 目录到桶中的 www-backup 目录
s3cmd sync /var/www/ s3://my-backup-bucket/www-backup/
下载文件/目录
# 下载单个文件
s3cmd get s3://桶名称/文件路径 本地目标路径
# 递归下载整个目录(同步)
s3cmd sync s3://桶名称/目录路径/ 本地目录/
# 示例1:下载一个文件
s3cmd get s3://my-backup-bucket/backup.tar.gz /restore/
# 示例2:同步远程目录到本地
s3cmd sync s3://my-backup-bucket/www-backup/ /var/www/
列出桶内的文件和目录
s3cmd ls s3://桶名称/[可选路径]
# 示例:列出 my-backup-bucket 桶中 www-backup 目录下的所有内容
s3cmd ls s3://my-backup-bucket/www-backup/
删除文件/目录
# 删除单个文件
s3cmd del s3://桶名称/文件路径
# 递归删除整个目录(慎用!)
s3cmd del --recursive s3://桶名称/目录路径/
# 示例1:删除一个文件
s3cmd del s3://my-backup-bucket/old-file.log
# 示例2:删除整个目录及其内容
s3cmd del --recursive s3://my-backup-bucket/old-backups/