Скрипт AutoIT / UDF для взаимодействия с Amazon S3 API - PullRequest
1 голос
/ 13 февраля 2012

Я пытаюсь создать интерфейс скрипта AutoIT с помощью API Amazon S3.Я пробовал и SOAP, и REST, но безуспешно.

Это код SOAP, с которым я работаю (модифицированный пример из Ptrex на форумах AutoIT), однако я получаю следующий ответ: "soapenv: Client.badRequest Отсутствует заголовок SOAPAction "

Если честно, код не имеет для меня особого смысла, и я действительно просто возиться.

Любые примеры или указатели, чтобы получитья буду очень признателен за правильное взаимодействие с API Amazon S3!

; Initialize COM error handler
$oMyError = ObjEvent("AutoIt.Error","MyErrFunc")

$objHTTP = ObjCreate("Microsoft.XMLHTTP")
$objReturn = ObjCreate("Msxml2.DOMDocument.3.0")

$strEnvelope = '<soap:envelope xmlns:soap="urn:schemas-xmlsoap-org:soap.v1">' & _
'<soap:header></soap:header>' & _
'<soap:body>' & _
'<ListAllMyBuckets xmlns="http://doc.s3.amazonaws.com/2006-03-01">' & _
  '<AWSAccessKeyId>MYACCESSKEYID</AWSAccessKeyId>' & _
  '<Timestamp>2006-03-01T12:00:00.183Z</Timestamp>' & _
  '<Signature>MYSECRETSIGNATURE</Signature>' & _
'</ListAllMyBuckets>' & _
'</soap:body>' & _
'</soap:envelope>'

; Set up to post to our local server
$objHTTP.open ("post", "https://s3.amazonaws.com/soap", False)

; Set a standard SOAP/ XML header for the content-type
$objHTTP.setRequestHeader ("xmlns:aws",  "http://security.amazonaws.com/doc/2007-01-01/")

 Make the SOAP call
$objHTTP.send ($strEnvelope)

; Get the return envelope
$strReturn = $objHTTP.responseText

; ConsoleWrite("Debug : "& $strReturn & @CR & @CR)

; Load the return envelope into a DOM
$objReturn.loadXML ($strReturn)

ConsoleWrite("Return of the SOAP Msg : " & @CR & $objReturn.XML & @CR & @CR)

; Query the return envelope
$strQuery = "SOAP:Envelope/SOAP:Body/ListAllMyBuckets"

$dblTax = $objReturn.selectSingleNode($strQuery)
$Soap = $objReturn.Text

MsgBox(0,"SOAP Response",$Soap)

1 Ответ

0 голосов
/ 12 декабря 2013

Я не знаю, поможет ли это вам, но из части autoit все работает хорошо. Ответ, который вы получите от amazon «soapenv: Client.badRequest Отсутствует заголовок SOAPAction», означает, что на самом деле что-то говорит с вашим запросом. -namely: отсутствует заголовок SOAPAction

То, что вы получили, действительно было ответом, но ошибочным ответом от сервера. Предлагаю попробовать переписать запрос

Я нашел наиболее подходящее описание здесь: http://docs.aws.amazon.com/AWSSimpleQueueService/2008-01-01/SQSDeveloperGuide/index.html?MakingRequests_MakingSOAPRequestsArticle.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...