Мы создаем приложение, которое хранит данные в корзине S3. Однако у нас есть проблемы с методом PutObject . Вот пакет xml, который мы отправляем:
<?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <PutObject xmlns="http://doc.s3.amazonaws.com/2006-03-01"> <Bucket>lills</Bucket> <Key>lills123</Key> <Metadata> <Name>Content-Type</Name> <Value>text/plain</Value> </Metadata> <Metadata> <Name>title</Name> <Value>lills</Value> </Metadata> <Data>aGEtaGE=</Data> <ContentLength>5</ContentLength> <AWSAccessKeyId>key</AWSAccessKeyId> <Timestamp>2008-11-12T06:23:17Z</Timestamp> <Signature>signature</Signature> </PutObject> </soap:Body> </soap:Envelope>
И это ответ, который мы получаем от S3:
<?xml version="1.0" encoding="utf-8"?> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <soapenv:Body> <soapenv:Fault> <faultcode>soapenv:Client.badRequest</faultcode> <faultstring>Malformed request</faultstring> <detail/> </soapenv:Fault> </soapenv:Body> </soapenv:Envelope>
Может кто-нибудь сказать мне, в чем проблема с пакетом SOAP?
Спасибо заранее, Деван
Если вы хотите отправить данные в самом сообщении SOAP, вам нужно использовать PutObjectInline, а не PutObject (который ожидает, что данные являются вложением DIME).
см. PutObjectInline в документах s3.