更具七牛提供的上傳的接口,可以根據接口來實現一些腳本化的功能:
1.生成上傳token的腳本(這裏命名爲up):
#!/usr/bin/env bash
if [ "$1" == "" ];then
let time=$(date +%s)+3600*24
else
let time=$(date +%s)+$1
fi
data="{\"scope\":\"javademo\",\"deadline\":$time}"
dat=$(date -r $time)
ak="xxxxxxxx"
sk="xxxxxxxx"
data=$(echo $data | base64 | tr "+/" "-_")
auth=$(echo -en $data | openssl sha1 -hmac $sk -binary | base64 | tr "+/" "-_")
echo "$ak:$auth:$data";
用法如下(up後的參數表示設置過期時間):
2.可以指定上傳域名或節點用來上傳的腳本(這裏命名爲upload):
#!/usr/bin/env bash
if [ "$1" = "" ]; then
echo 'must specify $1 eg: upload upload.qiniu.com'
exit 1
else
dd if=/dev/zero of=10M.file bs=10m count=1
token=$(up)
echo 'UpToken: '$token
fi
if [ "$1" = "upload.qiniu.com" ]; then
echo 'curl -vosa upload.qiniu.com -F"key=upload.file" -F"token=$token" -F"file=@$10M.file"'
curl -vosa $1 -F "key=10M.file" -F"token=$token" -F"[email protected]" -x $2:80
elif [ $1 = "up.qbox.me" ] ;then
echo 'curl -vosa up.qbox.me -F"key="upqbox.file" -F"token=$token" -F"[email protected]"'
curl -vosa $1 -F "key=10M.file" -F"token=$token" -F"[email protected]"
elif [ $1 = "up.qiniu.com" ] ;then
echo 'curl -vosa up.qiniu.com -F"token=$token" -F"[email protected]"'
curl -vosa $1 -F "key=10M.file" -F "key=10M.file" -F"token=$token" -F"[email protected]"
fi
rmfile=10M.file
echo "刪除"$rmfile
rm -f sa
rm $rmfile
用法如下(upload後的參數表示設置上傳的域名):
另外,還可以設置第2個參數表示指定從哪個節點上傳, eg:
upload upload.qiniu.com 183.136.139.10