上傳檔案到七牛時,bad token了怎麼處理?

來源:互聯網
上載者:User
關鍵字 php
想用七牛實現個離線下載的功能。然後把裡面的一些密碼編譯演算法的函數提了出來。
這個是shell指令碼啟動並執行,提示bad token了,不知道我下面的指令碼哪裡寫錯了?
謝謝~

php download.php https://p.ssl.qhimg.com/t01d1f1a2ae31e3c3e4.png 111.png

download.php,擷取encodeURI、encodedEntryURI和accessToken;

?\n"$signingStr = "{$path}?{$query}\n";$sign = hmac_sha1($signingStr, SecretKey);$encodedSign = urlsafe_base64_encode($sign);//$encodeAccessKey = urlsafe_base64_encode(AccessKey);//$accessToken = "{$encodeAccessKey}:{$encodedSign}";$accessToken = AccessKey.":{$encodedSign}";echo "AccessToken:\r\n{$accessToken}\r\n\r\n";
$data['scope'] = BUCKET;$data['deadline'] = time()+3600;//到期時間$encoded = urlsafe_base64_encode(json_encode($data));//$signature=hash_hmac('sha1',$encoded,'KEY',true);$signature = hmac_sha1($encoded, SecretKey);$encode_signed = urlsafe_base64_encode($signature);//$UploadToken=$encode_signed.':'.$encoded; $UploadToken = AccessKey.":".$encode_signed.":".$encoded;echo "AccessToken:\r\n{$UploadToken}\r\n\r\n";echo "UploadURL:\r\nhttp://iovip.qbox.me/fetch/{$encodeURI}/to/{$encodedEntryURI}\r\n\r\n";

再通過指令碼

sh download.sh encodeURI encodedEntryURI accessToken

傳輸資料,結果。。。提示:

{"error":"bad token"}

download.sh

curl -i \     -o - \     -H 'Content-Type: application/x-www-form-urlencoded' \     -H "Authorization: QBox $3" \     -X POST \     "http://iovip.qbox.me/fetch/$1/to/$2"

已經自行處理完成,最終 PHP 部分(有兩處錯誤):

PS:我發現我提問到最後,基本都是靠自己搞定的啊。不知道是不是大牛不屑這些技術含量低的問題還是???
真的和 sg 沒法比啊。。。

";var_dump($signingStr);$sign = hmac_sha1($signingStr, SecretKey);$encodedSign = urlsafe_base64_encode($sign);var_dump($sign);$accessToken = AccessKey.":{$encodedSign}";echo "AccessToken:\r\n{$accessToken}\r\n\r\n";echo "UploadURL:\r\nhttp://iovip.qbox.me/fetch/{$encodeURI}/to/{$encodedEntryURI}\r\n\r\n";

回複內容:

想用七牛實現個離線下載的功能。然後把裡面的一些密碼編譯演算法的函數提了出來。
這個是shell指令碼啟動並執行,提示bad token了,不知道我下面的指令碼哪裡寫錯了?
謝謝~

php download.php https://p.ssl.qhimg.com/t01d1f1a2ae31e3c3e4.png 111.png

download.php,擷取encodeURI、encodedEntryURI和accessToken;

?\n"$signingStr = "{$path}?{$query}\n";$sign = hmac_sha1($signingStr, SecretKey);$encodedSign = urlsafe_base64_encode($sign);//$encodeAccessKey = urlsafe_base64_encode(AccessKey);//$accessToken = "{$encodeAccessKey}:{$encodedSign}";$accessToken = AccessKey.":{$encodedSign}";echo "AccessToken:\r\n{$accessToken}\r\n\r\n";
$data['scope'] = BUCKET;$data['deadline'] = time()+3600;//到期時間$encoded = urlsafe_base64_encode(json_encode($data));//$signature=hash_hmac('sha1',$encoded,'KEY',true);$signature = hmac_sha1($encoded, SecretKey);$encode_signed = urlsafe_base64_encode($signature);//$UploadToken=$encode_signed.':'.$encoded; $UploadToken = AccessKey.":".$encode_signed.":".$encoded;echo "AccessToken:\r\n{$UploadToken}\r\n\r\n";echo "UploadURL:\r\nhttp://iovip.qbox.me/fetch/{$encodeURI}/to/{$encodedEntryURI}\r\n\r\n";

再通過指令碼

sh download.sh encodeURI encodedEntryURI accessToken

傳輸資料,結果。。。提示:

{"error":"bad token"}

download.sh

curl -i \     -o - \     -H 'Content-Type: application/x-www-form-urlencoded' \     -H "Authorization: QBox $3" \     -X POST \     "http://iovip.qbox.me/fetch/$1/to/$2"

已經自行處理完成,最終 PHP 部分(有兩處錯誤):

PS:我發現我提問到最後,基本都是靠自己搞定的啊。不知道是不是大牛不屑這些技術含量低的問題還是???
真的和 sg 沒法比啊。。。

";var_dump($signingStr);$sign = hmac_sha1($signingStr, SecretKey);$encodedSign = urlsafe_base64_encode($sign);var_dump($sign);$accessToken = AccessKey.":{$encodedSign}";echo "AccessToken:\r\n{$accessToken}\r\n\r\n";echo "UploadURL:\r\nhttp://iovip.qbox.me/fetch/{$encodeURI}/to/{$encodedEntryURI}\r\n\r\n";

以前寫的個:AK,KEYscope替換成你的

$data['scope']='your bucket';$data['deadline']=time()+3600;//到期時間$encoded=urlsafe_base64_encode(json_encode($data));$signature=hash_hmac('sha1',$encoded,'KEY',true);$encode_signed = urlsafe_base64_encode($signature);$UploadToken='AK:'.$encode_signed.':'.$encoded;  echo $UploadToken;function urlsafe_base64_encode($data) {    $data = base64_encode($data);    $data = str_replace(array('+','/'),array('-','_'),$data);    return $data;}

話說為啥不用SDK的?
直接

$token = $auth->uploadToken($bucket);
  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.