Advertisement
Guest User

Untitled

a guest
Oct 17th, 2018
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.46 KB | None | 0 0
  1. #!/bin/bash
  2. # ================================================================================
  3. # ObjectStorageUploader.sh
  4. # © Copyright IBM Corporation 2014.
  5. # LICENSE: MIT (http://opensource.org/licenses/MIT)
  6. # ================================================================================
  7.  
  8. #./objectstorageupload.sh dsl-4.4.10.iso 'myContainer/file.vhd' 'SLOS1234-1:SL1234' 'apikey'
  9.  
  10. fileToUpload=$1
  11. swiftTargetPath=$2
  12. swiftUsername=$3
  13. swiftPassword=$4
  14.  
  15. swiftEndpoint='https://dal05.objectstorage.softlayer.net/auth/v1.0/'
  16.  
  17. apiResponse=$(curl -X GET -H "X-Storage-User: $swiftUsername" -H "X-Storage-Pass: $swiftPassword" -s -i $swiftEndpoint)
  18. swiftAuthToken=$(echo "$apiResponse" | grep "X-Auth-Token:" | sed 's/X-Auth-Token: //g' | tr -d '\r')
  19. swiftStorageUrl=$(echo "$apiResponse" | grep "X-Storage-Url:" | sed 's/X-Storage-Url: //g' | tr -d '\r')
  20.  
  21. fileSize=$(wc -c $fileToUpload | awk '{print $1}')
  22. blockSize=1048576
  23. let chunkSize=2048 #2GB chunks
  24. let chunks=($fileSize/$blockSize+$chunkSize-1)/$chunkSize;
  25.  
  26. for ((i=0; i<chunks; i++))
  27. do
  28. printf -v chunkName "chunk-%05d" $i
  29. let skipChunk=$i*chunkSize
  30.  
  31. dd if=$fileToUpload bs=$blockSize count=$chunkSize skip=$skipChunk | curl -X PUT -H "X-Auth-Token: $swiftAuthToken" --data-binary @- "$swiftStorageUrl/$swiftTargetPath/$chunkName"
  32. done
  33.  
  34. curl -X PUT -H "X-Auth-Token: $swiftAuthToken" -H "X-Object-Manifest: $swiftTargetPath" -H "Content-Length: 0" $swiftStorageUrl/$swiftTargetPath
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement