【问题标题】:S3 PUT Bucket to a location endpoint results in a MalformedXML exceptionS3 PUT Bucket 到位置端点导致 MalformedXML 异常
【发布时间】: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


    【解决方案1】:

    好的,问题是我没有像wireshark 跟踪所显示的那样传输整个xml。一旦我修复它,问题就消失了。

    顺便说一句...用 \ 转义引号,但 & quot;没有。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-08-16
      • 1970-01-01
      • 2019-02-23
      • 2013-03-25
      • 1970-01-01
      • 2020-08-05
      • 2014-12-06
      • 1970-01-01
      相关资源
      最近更新 更多