云计算、AI、云原生、大数据等一站式技术学习平台

网站首页 > 教程文章 正文

s3cmd在天翼云oos的应用(天翼云部署)

jxf315 2025-07-10 16:20:25 教程文章 4 ℃

s3cmd是亚马逊s3的一个命令行工具,稍作修改可以用在天翼云oos上。服务器Centos,如果有epel源的话,可以直接第二步 yum install s3cmd,然后同步北京时间

yum -y install epel-release
yum install s3cmd
sudo timedatectl set-time '2024-10-21 15:30:00'
s3cmd --configure

按照提示,填入在天翼oos的密匙,其它选项一路默认回车即可,后面问是不是要测试连接的时候选 No(因为s3cmd在修改前默认连接是亚马逊s3),然后保存,程序会在用户跟目录下生成一个隐藏文件,我们要修改这个配置文件:

vim ~/.s3cfg

找到“host_base =”和“host_bucket =”这两行,修改至如下:

host_base = oos-cn.ctyunapi.cn
host_bucket = %(bucket)s.oos-cn.ctyunapi.cn

好了,现在试试s3cmd的一个常用命令:

s3cmd ls

如果可以看见你在天翼oos里建立的容器,那表示配置成功,另外一些常用的命令如下,用s3cmd --help可以查看,简单翻译如下:

创建容器
s3cmd mb s3://BUCKET
删除容器
s3cmd rb s3://BUCKET
查看容器内的文件
s3cmd ls [s3://BUCKET/path/
查看所有容器内的所有文件,测试过只能显示一层目录
s3cmd la
把文件从本地上传至天翼oos的命令
s3cmd put FILE [FILE...] s3://BUCKET[/PREFIX]
从天翼oos下载文件到本地
s3cmd get s3://BUCKET/OBJECT LOCAL_FILE
删除容器内的特定文件
s3cmd del s3://BUCKET/OBJECT
如果要删除容器类的整个目录,可以加参数 -r -f
s3cmd del -r -f s3://容器/目录/
把本地目录同步到天翼oos或者从oos同步到本地
s3cmd sync LOCAL_DIR s3://BUCKET[/PREFIX] or s3://BUCKET[/PREFIX] LOCAL_DIR
查看容器所占空间
s3cmd du [s3://BUCKET[/PREFIX]]
查看容器或者文件的属性
s3cmd info s3://BUCKET[/OBJECT]
天翼oos中的文件复制命令
s3cmd cp s3://BUCKET1/OBJECT1 s3://BUCKET2[/OBJECT2]
移动文件
s3cmd mv s3://BUCKET1/OBJECT1 s3://BUCKET2[/OBJECT2]
......其它的不常用

其中sync同步命令很实用,可以加参数实现不少功能:

同步本地至天翼oos,并在云端删除已经从本地删除的文件
s3cmd sync --delete-removed /path/ s3://bucket/path/
如果怕错删除,可以再加参数 --dry-run,它只列出--delet-removed将要删除的文件,但并不会真正的删除
s3cmd sync --dry-run --delete-removed /path/ s3://bucket/path/
sync命令默认是要校检本地文件和天翼oos中文件的md5值的,如果不想校检只同步新文件,可以加 --skip-existing
s3cmd sync --skip-existing /path/ s3://bucket/path/
还有 --exclude(不包含) 和 --include(包含)参数
s3cmd sync --exclude '*.txt' --include 'dir2/*' . s3://bucket/path/

常用的命令就以上了,复杂一点的可以去查阅s3cmd官方文档

如果你按流程下来始终调不通,请检查cat ~/.s3cfg这三个地方是不是一致

最近发表
标签列表