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