【发布时间】:2014-06-03 08:43:08
【问题描述】:
我正在尝试使用 libCurl 创建一个 AWS s3 存储桶:
位置端点 curl_easy_setopt(curl, CURLOPT_URL, "http://s3-us-west-2.amazonaws.com/");
组装的 RESTful HTTP 标头:
PUT / HTTP/1.1
Date:Fri, 18 Apr 2014 19:01:15 GMT
x-amz-content-sha256:ce35ff89b32ad0b67e4638f40e1c31838b170bbfee9ed72597d92bda6d8d9620
host:tempviv.s3-us-west-2.amazonaws.com
x-amz-acl:private
content-type:text/plain
Authorization: AWS4-HMAC-SHA256 Credential=AKIAISN2EXAMPLE/20140418/us-west-2/s3/aws4_request, SignedHeaders=date;x-amz-content-sha256;host;x-amz-acl;content-type, Signature=e9868d1a3038d461ff3cfca5aa29fb5e4a4c9aa3764e7ff04d0c689d61e6f164
Content-Length: 163
body 包含存储桶配置 http://s3.amazonaws.com/doc/2006-03-01/">us-west-2
我得到以下异常。
MalformedXML您提供的 XML 格式不正确或未针对我们发布的架构进行验证
我已经能够通过 aws cli 执行相同的操作。
我也尝试过。
1) 在 xml 中,使用 \ 来转义引号(即 xmlns=\"http:.../\")。
2) 不提供 CreateBucketConfiguration(“虽然 s3 文档建议在将请求发送到位置端点时这是不允许的”)。
3) 对同一端点的 get 服务调用正确列出了所有配置的存储桶。
如果这里还有什么我可能遗漏的东西,请告诉我。
【问题讨论】:
标签: amazon-web-services amazon-s3