首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >亚马逊s3 MalformedXML状态代码: 400

亚马逊s3 MalformedXML状态代码: 400
EN

Stack Overflow用户
提问于 2015-05-24 18:04:21
回答 1查看 2.2K关注 0票数 0

当使用的putObject()函数时,我收到了以下错误:

代码语言:javascript
运行
复制
PHP Fatal error:  Uncaught Aws\S3\Exception\MalformedXMLException: AWS Error Code: MalformedXML, 
Status Code: 400, AWS Request ID: 7E36EB414B2A9436, AWS Error Type: client, 
AWS Error Message: The XML you provided was not well-formed or did not validate against our published schema, 
User-Agent: aws-sdk-php2/2.5.4 Guzzle/3.8.1 curl/7.26.0 PHP/5.5.19-1~dotdeb.1
  thrown in /sites/sitename/vendor/aws/aws-sdk-php/src/Aws/Common/Exception/NamespaceExceptionFactory.php on line 91

尽管我收到了错误,但进程继续成功运行,文件被移动到s3。我知道这很可能与函数中包含的参数有关,但我不确定还需要什么,因为用于php的aws api只显示了所需的“桶”和“键”参数。我的配置如下:

代码语言:javascript
运行
复制
$config = array();
$config['Bucket'] = IMAGE_BUCKET;
$config['Key'] = $imageName;
$config['SourceFile'] = $sourceImageDir;
$config['ACL'] = 'public-read';
$config['ContentLength'] = filesize($sourceImageDir);

$response = $s3->putObject($config);

如果我知道服务需要什么样的格式,我确信我可以抓住在它变成xml字符串之后发送的请求,并将它与它进行比较,但是我似乎找不到它。如果它存在。我想会有这样的事情吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-24 19:19:42

多亏了迈克尔的评论,我才得以进一步追踪这个问题。事实证明,这个问题实际上来自对deleteObjects()的调用。这些命令在cli上的shell脚本中执行,最后一次调用putObject()之前还有另一个调用。它试图向s3 service...which发送空数组,显然会返回给定的MalformedXML状态代码。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30426632

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档