86 lines
2.3 KiB
Bash
86 lines
2.3 KiB
Bash
![]() |
#!/bin/bash
|
|||
|
#usage:
|
|||
|
# ./ossUpgrade.sh "stage/ztsjxxxt/frontEnd/" html.zip ztsjxxxt
|
|||
|
# set -xt
|
|||
|
PATH=PATH:/usr/bin:/usr/sbin:/usr/local/bin
|
|||
|
ossPath=$1 #末尾别忘了加/
|
|||
|
fileName=$2
|
|||
|
preName="${fileName%.*}"
|
|||
|
|
|||
|
protol=oss
|
|||
|
|
|||
|
basePath=$3
|
|||
|
|
|||
|
if [ ! -d $basePath ]; then
|
|||
|
mkdir $basePath -p
|
|||
|
fi
|
|||
|
|
|||
|
function compare(){
|
|||
|
if [ ! -d $basePath ]; then
|
|||
|
mkdir $basePath
|
|||
|
fi
|
|||
|
cd $basePath
|
|||
|
if [ ! -f ${fileName}_oss.info ]; then
|
|||
|
touch ${fileName}_oss.info
|
|||
|
fi
|
|||
|
echo upstream ossPath: ${protol}://${ossPath}$fileName
|
|||
|
( ossutil stat ${protol}://${ossPath}$fileName | head -n -2) > ${fileName}_upstream_oss.info
|
|||
|
upstreamOssInfoMd5=$(md5sum ${fileName}_upstream_oss.info)
|
|||
|
upstreamOssInfoMd5="${upstreamOssInfoMd5% *}"
|
|||
|
locOssInfoMd5=$(md5sum ${fileName}_oss.info)
|
|||
|
locOssInfoMd5="${locOssInfoMd5% *}"
|
|||
|
echo "upstream $fileName ossInfo md5: |${upstreamOssInfoMd5}|"
|
|||
|
echo "localTep $fileName ossInfo md5: |${locOssInfoMd5}|"
|
|||
|
echo "upstream:" $(pwd)/${fileName}_upstream_oss.info
|
|||
|
cat ${fileName}_upstream_oss.info
|
|||
|
echo "localTem:" $(pwd)/${fileName}_oss.info
|
|||
|
cat ${fileName}_oss.info
|
|||
|
# 当上游oss文件meta信息跟下游缓存文件meta信息匹配时, 无需更新
|
|||
|
if [ "${upstreamOssInfoMd5}" = "${locOssInfoMd5}" ];then
|
|||
|
return 0
|
|||
|
else
|
|||
|
# 当上游oss文件meta信息跟下游缓存文件meta信息不符时,如果上游信息是空,下游非空,则忽略更新,因为有可能是误判
|
|||
|
if [ "${upstreamOssInfoMd5}" = "d41d8cd98f00b204e9800998ecf8427e" ] && [ "${locOssInfoMd5}" != "d41d8cd98f00b204e9800998ecf8427e" ];then
|
|||
|
echo "maybe a mistake, ignore upgrade"
|
|||
|
return 0
|
|||
|
else
|
|||
|
return 1
|
|||
|
fi
|
|||
|
fi
|
|||
|
}
|
|||
|
|
|||
|
function downloadFromOss(){
|
|||
|
cd $basePath
|
|||
|
echo "fileName: " $fileName
|
|||
|
ossutil cp -f ${protol}://${ossPath}${fileName} ${fileName}_tmp
|
|||
|
rm $fileName
|
|||
|
mv ${fileName}_tmp $fileName
|
|||
|
( ossutil stat ${protol}://${ossPath}$fileName | head -n -2) > ${fileName}_oss.info
|
|||
|
}
|
|||
|
|
|||
|
function main(){
|
|||
|
echo " "
|
|||
|
echo "start ossUpgrade service"
|
|||
|
compare
|
|||
|
result=$?
|
|||
|
if [ $result = 0 ];then
|
|||
|
# uploadLog
|
|||
|
echo "local temp file $fileName is same with oss file,no need to replace"
|
|||
|
echo "end ossUpgrade service"
|
|||
|
echo " "
|
|||
|
exit 0
|
|||
|
else
|
|||
|
echo "local temp file $fileName is different from oss, will download..."
|
|||
|
fi
|
|||
|
downloadFromOss
|
|||
|
echo "end ossUpgrade service"
|
|||
|
echo " "
|
|||
|
}
|
|||
|
|
|||
|
main
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|