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

問題

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

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

而後咱們經過 wget 進行下載。bash

[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。咱們設置了下這兩個參數,而後進行訪問,發現仍是不行。tcp

解決辦法

緣由是 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 工具在鏈接中斷的時候嘗試斷點續傳。code

相關文章
相關標籤/搜索