2014-07-01 58 views
1

我正在尋找神奇的公式來獲得CEPH + S3 Java SDK + presigned PUT url + CORS的工作。我們可以創建一個存儲桶,然後將CORS配置應用於存儲桶。然後,我們可以創建一個預先生成的PUT網址,然後發送回客戶端。但是,CORS預檢(選項)請求以403失敗。CEPH + S3 Java SDK + presigned PUT + CORS = FAIL

針對AWS,這個相同的代碼效果很好。但是,Swift和Ceph在OPTIONS請求中失敗了403.由於OPTIONS失敗,CORS失敗。我們追蹤了它(我們認爲)RADOSGW在創建auth頭文件時可能存在的缺陷......它不符合amazon SDK使用的簽名過程。例如:

AWS Java auth hdr that gets signed: 
PUT 

image/jpeg 
1404252781 
x-amz-meta-origfile:Desert.jpg 
/virbsupport/78946140-4638-4338-b765-6f701c453a89?response-content-disposition=attachment; filename=Desert.jpg 

In Ceph: 
OPTIONS 


1404252781 
/virbsupport/78946140-4638-4338-b765-6f701c453a89?response-content-disposition=attachment; filename=Desert.jpg 

我們可以處理丟失的內容類型和附加元數據字段,但注意方法是完全錯誤的。 RADOSGW我認爲應該使用「訪問控制請求方法」作爲簽名中的方法...而不是用於預檢請求的實際OPTIONS方法。

有沒有人能夠得到這種組合功能?

回答