sh 对象存储上传bash脚本
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sh 对象存储上传bash脚本相关的知识,希望对你有一定的参考价值。
#!/bin/bash
# ================================================================================
# ObjectStorageUploader.sh
# © Copyright IBM Corporation 2014.
# LICENSE: MIT (http://opensource.org/licenses/MIT)
# ================================================================================
#./objectstorageupload.sh dsl-4.4.10.iso 'myContainer/file.vhd' 'username' 'apikey'
fileToUpload=$1
swiftTargetPath=$2
swiftUsername=$3
swiftPassword=$4
swiftEndpoint='https://dal05.objectstorage.softlayer.net/auth/v1.0/'
apiResponse=$(curl -X GET -H "X-Storage-User: $swiftUsername" -H "X-Storage-Pass: $swiftPassword" -s -i $swiftEndpoint)
swiftAuthToken=$(echo "$apiResponse" | grep "X-Auth-Token:" | sed 's/X-Auth-Token: //g' | sed 's/\r//g')
swiftStorageUrl=$(echo "$apiResponse" | grep "X-Storage-Url:" | sed 's/X-Storage-Url: //g' | sed 's/\r//g')
fileSize=$(stat -c '%s' $fileToUpload)
blockSize=1048576
let chunkSize=2048 #2GB chunks
let chunks=($fileSize/$blockSize+$chunkSize-1)/$chunkSize;
for ((i=0; i<chunks; i++))
do
printf -v chunkName "chunk-%05d" $i
let skipChunk=$i*chunkSize
dd if=$fileToUpload bs=$blockSize count=$chunkSize skip=$skipChunk | curl -X PUT -H "X-Auth-Token: $swiftAuthToken" --data-binary @- "$swiftStorageUrl/$swiftTargetPath/$chunkName"
done
curl -X PUT -H "X-Auth-Token: $swiftAuthToken" -H "X-Object-Manifest: $swiftTargetPath" -H "Content-Length: 0" $swiftStorageUrl/$swiftTargetPath
以上是关于sh 对象存储上传bash脚本的主要内容,如果未能解决你的问题,请参考以下文章
sh Bash脚本将所有Proxmox虚拟机的存储移动到不同的存储
sh Bash脚本,用于在RRD中存储ping数据并绘制该数据
sh bash脚本备份您的mongodb数据并将存档存储到AWS S3。
shell脚本:检查ftp日志存储服务器上的日志是否正常上传
执行shell脚本报-bash: ./test.sh: /bin/bash^M: 坏的解释器
sh 一个非常基本的BASH脚本,当一个新的在线上传租约符合我的期望时,它会自动通过电子邮件发送给我。在2015年真正的estat