我有一個現有的salesforce實現,它使用Web服務將附件上傳到Amazon S3存儲桶。這個過程在過去2年左右一直在正常運作。現在,突然之間,我們在這個系統中出現間歇性故障(系統每年僅使用4次,所以它可能已經被打破了一段時間)。我已經仔細研究過了,而且我完全失敗了。Salesforce到Amazon S3 - 間歇性傳輸失敗 - URI無效
系統通過S3 Soap API生成PutObjectInline請求。它可能會在運行期間(通常爲10-15分鐘)生成幾百個請求。在提出的要求中,約有50%失敗(更多內容見下文)。每個故障都會從服務器獲得HTTP 400狀態,並顯示「無效的URI」消息。答覆的主體是空白的。成功的傳輸使用與失敗相同的URI。整個傳輸集正在上傳到同一個存儲桶中。
的故障形成奇數模式,從它的外觀,每隔(通過,失敗,通過,失敗)傳輸失敗,與3-4傳輸後續偶爾鏈。我研究了可能會傳輸數據太快的想法,但AWS爲此提供了一個非常具體的代碼:503。此外,錯誤本身似乎指向某種連接問題。 有誰知道會導致這種問題?
這是(我sripped了一些信息,以節省空間和隱私保護)的失敗的請求的一個示例:
<?xml version="1.0" encoding="UTF-8"?>
<env:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><env:Header/>
<env:Body>
<PutObjectInline xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Bucket>2013-2014.(Numeric&TextValue).(TextValue)</Bucket>
<Key>(Numerical/Text Value).2013-2014.(Text).(Number).(Text may include ' or .).(Number).(Text XXX-XXX).pdf</Key>
<Data>(base64 encoded pdf file)</Data>
<ContentLength>(usually in the 15-19k byte range)</ContentLength>
<AccessControlList>
<Grant>
<Grantee xsi:type="Group">
<URI>http://acs.amazonaws.com/groups/global/AllUsers</URI>
</Grantee>
<Permission>READ</Permission>
</Grant>
<Grant>
<Grantee xsi:type="CanonicalUser">
<ID>(removed)</ID>
</Grantee>
<Permission>FULL_CONTROL</Permission>
</Grant>
</AccessControlList>
<AWSAccessKeyId>(removed)</AWSAccessKeyId>
<Timestamp>2013-11-20T20:51:56.212Z</Timestamp>
<Signature>(removed - but assume this is valid)</Signature>
<Credential>(removed)</Credential>
</PutObjectInline>
</env:Body>
</env:Envelope>