2015-09-05 2 views
-1

Я пытаюсь сделать запрос PUT через REST API, чтобы установить правило жизненного цикла, как описано здесь: http://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTlifecycle.htmlAmazon S3 REST API искаженной XML Ошибка на PutBucketLifeCycle

Но даже когда я PUT те же XML-данные, как и в Пример 1, я получаю «Ошибка XML с ошибкой». Также Content-Length и MD5 запроса в этом примере кажутся недействительными, поскольку я вычисляю разные значения.

Мой пут:

PUT https://myBucket.s3-eu-central-1.amazonaws.com/?lifecycle 
Content-length: 397 
Content-MD5: Or7bcOqR6tcsifiqQpq1tw== 
… (Signature headers etc.) 

<LifecycleConfiguration> 
    <Rule> 
    <ID>id1</ID> 
    <Prefix>documents/</Prefix> 
    <Status>Enabled</Status> 
    <Transition> 
     <Days>30</Days> 
     <StorageClass>GLACIER</StorageClass> 
    </Transition> 
    </Rule> 
    <Rule> 
    <ID>id2</ID> 
    <Prefix>logs/</Prefix> 
    <Status>Enabled</Status> 
    <Expiration> 
     <Days>365</Days> 
    </Expiration> 
    </Rule> 
</LifecycleConfiguration> 

и имеет Content-Length из и MD5 из Or7bcOqR6tcsifiqQpq1tw ==

Я получаю эту ошибку:

<?xml version="1.0" encoding="UTF-8"?> 
<Error> 
    <Code>MalformedXML</Code> 
    <Message>The XML you provided was not well-formed or did not validate against our published schema</Message>  
    <RequestId>FC82F477B48DF40D</RequestId>  
    <HostId>5nJaHpypZQ/boh5fmtYWcvozeRO/OYIfuvYRXj2Un56tWPP2sj2jpazl0Xyl09Ic4s2lxh0l+C8=</HostId> 
</Error> 

Любая помощь по этому поводу ценится!

Спасибо!

ответ

0

Я, наконец, понял это. URL-адрес конечной точки был неправильным, поскольку параметры были пропущены моим кодом при создании запроса PUT.

Если вы получили ошибку XML Malformed, убедитесь, что ваш конечный URL-адрес правильный.

0

Для других находящих этот вопрос с поисковых систем:

<Prefix></Prefix> - пустой префикс для этого требуется вызов работать «для всего ведра».

Смежные вопросы