阿里云oss挂载到本地及oss文件的上线记录

来源:互联网 发布:人工智能伏羲觉醒迅雷 编辑:程序博客网 时间:2024/05/28 20:20

我司的oss主要用来存储静态图片,当前mobile和web站所使用的静态图片都放置在oss中使用,因此测试环境和生产环境都存在oss。因此,每次上线需要把测试oss上的文件上传到生产的oss上。步骤如下:

1、将目的端(即线上)的bucket挂载到本地的zice机器,使用ossfs工具

echo test-static:faint:123 > /etc/passwd-ossfs   ##设置bucket name和AccessKeyId/Secret信息,将其存放在/etc/passwd-ossfs
chmod 640 /etc/passwd-ossfs     ##加640权限
mkdir /alidata/oss/test-static    ##建立挂载点

ossfs test-static /alidata/oss/test-static  -ourl=http://oss-cn-shanghai.aliyuncs.com   ##挂载到挂载点/alidata/oss/puhuijia-static

参见阿里云文档:https://help.aliyun.com/document_detail/32196.html?spm=5176.doc57053.6.1042.8WTkmS

2、备份本地挂载的bucket内的全部文件
/alidata/oss/oss_backup.sh    ##使用这个脚本进行备份,脚本的内容如下
vim oss_back.sh
######
date=`date +%Y-%m-%d-%H-%M`
echo "开始进行OSS备份..."
rsync -avz /alidata/oss/test-static /test/backup/test-static/test-static-${date}
echo "OSS备份完毕,此次备份路径为:/test/backup/test-static/test-static-${date}"
######
3、杀掉当前的进行中的import服务
ps axu | grep "ossimport2.jar.* start" | grep -v grep | awk '{print "kill -9 "$2}' | bash
4、清除同名任务
java -jar $work_dir/bin/ossimport2.jar -c $work_dir/conf/sys.properties clean oss_static
5、启动import服务
nohup java -Dskip_exist_file=false -jar $work_dir/bin/ossimport2.jar -c $work_dir/conf/sys.properties start > $work_dir/logs/ossimport2.log 2>&1 &
6、提交新的import任务
java -jar $work_dir/bin/ossimport2.jar -c $work_dir/conf/sys.properties submit $work_dir/oss_job_static.cfg
6、查看任务状态
java -jar $work_dir/bin/ossimport2.jar -c $work_dir/conf/sys.properties stat detail
7、查看日志

tailf logs/ossimport2.log

PS:oss_job_static.cfg的内容如下

#job名字,每个任务唯一,如果重复提交同名任务会提示任务已存在jobName=oss_static#是否打开增量模式,如果设为true,会每间隔incrementalModeInterval(单位秒)重新扫描一次增量数据,并将增量数据同步到oss上,incrementalModeInterval不建议配置成小于3600秒的值,会浪费很多请求次数,造成额外的开销(目前可配置的最小间隔为900秒)isIncremental=false#incrementalModeInterval=86400##############################################################同步源端设置###############################################################同步源类型,目前支持:#1.local(本地文件,此选项只需要填写srcPrefix,不需要填写srcAccessKey,srcSecretKey,srcDomain,srcBucket)#2.oss(从oss的一个bucket迁移到另一个bucket)#3.qiniu(七牛)#4.bos(百度的云存储)#5.ks3(金山的云存储)#6.s3(亚马逊s3) #7.youpai(又拍云,又拍云获取文件列表的接口比较特殊,在同步时list不支持断点,因此在list没有完成时杀掉同步进程会导致下次会重新全部list文件列表)#8.http (通过提供的http链接列表同步数据,此选项不需要填写srcAccessKey,srcSecretKey,srcDomain,srcBucket,srcPrefix)#9.cos(腾讯云)srcType=oss#源access key,同步本地文件以及通过http地址同步的不需要填,大部分云平台填写控制台获取的acceess key/accss key id,又拍云填写操作员账号srcAccessKey=123456#源secrect key,同步本地文件以及通过http地址同步的不需要填,大部分云平台填写控制台获取的secret key/access key secret,又拍云填写操作员密码srcSecretKey=123456#源endpoint,同步本地文件以及通过http地址同步的不需要填#1.oss: 从控制台获取域名(非带bucket前缀的二级域名),域名列表参考https://help.aliyun.com/document_detail/31834.html; 例:"srcDomain=http://oss-cn-hangzhou-internal.aliyuncs.com"; 如果用阿里云ecs虚拟机做迁移的,请使用internal域名,不计费且不受虚拟机带宽限制(非虚拟机无法使用);例:http://oss-cn-hangzhou-internal.aliyuncs.com #2.七牛: 从七牛控制台获取对应bucket的域名#3.百度bos: http://bj.bcebos.com或者http://gz.bcebos.com#4.金山ks3: http://kss.ksyun.com或者http://ks3-cn-beijing.ksyun.com或者http://ks3-us-west-1.ksyun.com #5.亚马逊s3: 各个region的地址请参考http://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region #6.又拍云:  http://v0.api.upyun.com(自动判断最优线路)或者http://v1.api.upyun.com(电信线路)或者http://v2.api.upyun.com(联通网通线路)或者http://v3.api.upyun.com(移动铁通线路) #7.腾讯云: cos v3版本不需要填写;cos v4版本需要填上bucket所在的区域,比如华南园区填写:gz,华北园区:tj,华东园区:shsrcDomain=http://oss-cn-qingdao.aliyuncs.com#源bucket名字,同步本地文件以及通过http地址同步的不需要填,不需要加上"/"srcBucket=testpc-static#源前缀,默认为空,如果srcType=local,则此目录是本地目录,如果是其他类型,则是源Bucket里需要同步的Object的前缀,注意如果是本地目录,需要完整目录路径(以'/'进行分割并且以'/'结尾,例: /home/admin/example/)srcPrefix=##############################################################同步目的端设置#################################################################目的 access keydestAccessKey=123456#目的 secret keydestSecretKey=123456#目的endpoint,请根据您的实际oss区域填写,默认为杭州的域名,如果用阿里云ecs虚拟机做迁移的,请使用internal域名,不计费且不受虚拟机带宽限制(非虚拟机无法使用);例:http://oss-cn-hangzhou-internal.aliyuncs.com#注意:域名里不要带上bucket前缀,oss域名帮助页面:https://help.aliyun.com/document_detail/31837.htmldestDomain=http://oss-cn-shanghai-finance-1-pub-internal.aliyuncs.com#目的bucket,不需要加上"/"destBucket=test-finance-static#目标前缀,默认为空,直接放在bucket下(如果要将数据同步到oss的某个目录下,请以'/'结尾),注意:oss不支持以 '/' 作为文件的开头,所以destPrefix请不要配置以'/'做为开头#一个本地文件路径为 srcPrefix + relativePath的文件,迁移到oss的路径为destDomain/destBucket/destPrefix + relativePath#一个云端文件路径为 srcDomain/srcBucket/srcPrefix + relativePath的文件,迁移到oss的路径为destDomain/destBucket/destPrefix + relativePathdestPrefix=##############################################################srcType=http时的配置选项#########################################################srcType="http"时,需要提供http列表文件的绝对路径,此文件中的http链接需要划分成两列,分别代表前缀以及上传到oss后的相对路径#例,有一个完整的http链接是127.0.0.1/aa/bb.jpg,不同的切分方法最后会导致上传到oss的路径会不一样: #c:/example/http.list文件内容:#127.0.0.1/aa/              bb.jpg #127.0.0.1/                   aa/bb.jpg# 第一行的文件导入到oss后的路径为 "destDomain/destBucket/destPrefix" + "bb.jpg"# 第二行的文件导入到oss后的路径为 "destDomain/destBucket/destPrefix" + "aa/bb.jpg"httpListFilePath=c:/example/http.listhttpPrefixColumn=1relativePathColumn=2##############################################################srcType=cos时的配置项############################################################腾讯云的appIdappId=0##############################################################任务配置,没有特殊需求不需要修改##################################################job类型(import/audit),import为同步数据到oss,audit为校验源端数据和oss数据是否一致jobType=import#只导入源文件最后修改时间大于该时间的数据,默认为0,这个时间为unix时间戳(秒数)importSince=0#在校验时,如果文件的最后修改时间大于该值,则跳过此文件的校验,默认值0为关闭该功能,所有文件都需要校验,这个时间为unix时间戳(秒数),jobType为audit时此项不生效lastModify=0# 每个子任务最大的文件个数限制,这个会影响到任务执行的并行度,一般配置为总的文件数/120taskObjectCountLimit=10000#每个子任务下载的最大文件大小限制(bytes)taskObjectSizeLimit=1000000000#并行扫描文件列表的线程数,只影响扫描文件的效率,没有特殊需求不要修改scanThreadCount=1#最大允许并行扫描目录的深度,默认为1就是只能在顶级目录间并行扫描,没有特殊需求不要修改,随意配置的过大会导致任务无法正常运行maxMultiThreadScanDepth=1
参见阿里云文档:https://help.aliyun.com/document_detail/56990.html?spm=5176.doc32196.6.1043.XVTSQ0

原创粉丝点击