【发布时间】:2015-02-21 21:16:15
【问题描述】:
我可以使用下面的 get 命令下载一个 test.pdf 文件,其中包含我用 C 语言编写的代码,用于微控制器与服务器通信:
GET /TestFolder/test.pdf HTTP/1.1\r\n 主机:www.xyz.com\r\n\r\n 文件:test.pdf 位于文件夹:TestFolder at Host:xyz.com
我想在 Amazon S3 上测试该程序;所以我创建了一个帐户并上传了数据并将文件和文件夹公开,将策略添加到 S3 存储桶以便可以访问对象。当我将上面的 GET 命令发送到 S3 主机时:s3-us-west-2.amazonaws.com 在连接套接字并获得服务器 IP 后出现错误,来自 S3 的错误消息显示:
响应错误:HTTP/1.1 400 错误请求
传输编码:分块
日期:星期一,.. 2015 年 04:15:02 GMT
连接:关闭
服务器:AmazonS3
我想从 get 命令中删除额外的 \r\n,并将此命令发送到 s3 GET /TestFolder/test.pdf HTTP/1.1\r\n 主机:s3-us-west-2.amazonaws.com\r\n
这一次,请求挂起,没有响应。我没有收到任何错误消息,套接字正常连接,我看到了服务器的 IP。
我将不胜感激任何可能存在问题的建议或意见。显然,当文件在其他站点公开时,GET 命令适用于文件下载,有没有人遇到过 http/1.1 GET 命令的这种问题?我可以通过在浏览器中键入链接从 AWS S3 访问该文件。
【问题讨论】:
标签: amazon-s3 get chunked transfer-encoding