s3cmd在天翼oos的应用

s3cmd是亚马逊s3的一个命令行工具,稍作修改可以用在国内的天翼oos上。服务器Centos,如果有epel源的话,可以直接 yum install s3cmd,然后:

	s3cmd --configure

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

	vim ~/.s3cfg

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

	host_base = oos.ctyunapi.cn
	host_bucket = %(bucket)s.oos.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官方文档

对于我,天翼oos是用来存储网站上的静态内容的:.css、.js、.jpg一类。这类文件加入Cache-Control header 可以减少请求数量和流量,参数是 --add-header,命令如下:

s3cmd put --add-header='Cache-Control:max-age=31536000' -M -r jpg_folder s3://assets.onepx.com/

如果想进一步降低流量消耗,可以考虑gzip压缩css和js文件,毕竟流量在云存储里是算钱的,但貌似天翼oos服务器端并不支持gzip压缩,所以我们要预先压缩文件。我的做法是先 "gzip -9" 压缩css文件得到 *.css.gz ,再批量重命名 *.css.gz 为 *.css,最后上传 *.css 文件。这时需要给已经压缩过的文件加 Content-encoding header,否则浏览器读不出来,命令如下:

s3cmd put --add-header='Cache-Control:max-age=31536000' --add-header='Content-encoding:gzip' -M *.css s3://assets.onepx.com/css/

 目前网站还在国外,这些静态内容放天翼oos后,网页加载速度真心快不少。

天翼云

Email: i at onepx dot com || QQ: ⑧九零三④幺 || 微信: onepxcom
©2019 一像素 蜀ICP备13026576号-2 技术支持:成都网站建设