在实际工做中,咱们为了方便,会将一些脚本储存在云端(阿里云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