wget下載阿里雲oss的文件報錯403


問題

在實際工作中,我們為了方便,會將一些腳本儲存在雲端(阿里雲OSS),這樣方便我們使用和下載,但是在實際的使用過程中,我們會遇到一些問題。

示例鏈接: https://djxlsp.oss-cn-shenzhen.aliyuncs.com/shell/tcp-status.sh?OSSAccessKeyId=LTAI8hlsoWKOIPS8&Expires=1561364265&Signature=w2i1aL3sfHcX%2Fj06N52%2BhSvQaJU%3

然后我們通過 wget 進行下載。

[root@localhost ~]# wget https://djxlsp.oss-cn-shenzhen.aliyuncs.com/shell/tcp-status.sh?OSSAccessKeyId=LTAI8hlsoWKOIPS8&Expires=1561363647&Signature=bBk3TUEGI7vE2%2F5AIJYv0sOSrW0%3D
[1] 20626
[2] 20627
[root@localhost ~]# --2019-06-24 15:07:40--  https://djxlsp.oss-cn-shenzhen.aliyuncs.com/shell/tcp-status.sh?OSSAccessKeyId=LTAI8hlsoWKOIPS8
Resolving djxlsp.oss-cn-shenzhen.aliyuncs.com (djxlsp.oss-cn-shenzhen.aliyuncs.com)... 120.77.166.194, 120.77.166.192
Connecting to djxlsp.oss-cn-shenzhen.aliyuncs.com (djxlsp.oss-cn-shenzhen.aliyuncs.com)|120.77.166.194|:443... connected.
HTTP request sent, awaiting response... 403 Forbidden
2019-06-24 15:07:40 ERROR 403: Forbidden.

發現是報 403 錯誤,我開始以為是資源不存在,還是怎么。但是發現該 URL 放在 瀏覽器里面可以正常打開,那就不是資源的問題,我在想是否是 Referer 或者是 未設置 Header。我們設置了下這兩個參數,然后進行訪問,發現還是不行。

解決辦法

原因是 URL 里面包含特殊字符 比如 &,導致 URL 被截斷,造成請求 URL 不完整,OSS 中不存在對應的文件信息,所以訪問被拒絕提示 403。因此在 Linux 平台 URL 需要加上英文單引號才可以通過 wget 工具下載。

正確寫法

 wget   'https://djxlsp.oss-cn-shenzhen.aliyuncs.com/shell/tcp-status.sh?OSSAccessKeyId=LTAI8hlsoWKOIPS8&Expires=1561364265&Signature=w2i1aL3sfHcX%2Fj06N52%2BhSvQaJU%3D' -O tcp-status.sh

我們如果是下載比較大的文件的時候,我們可以使用 -c 參數使 wget 工具在連接中斷的時候嘗試斷點續傳。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM