2012-07-09 169 views
0

我正在開發一個iOS應用程序,它將圖片保存在Amazon S3服務器中。不幸的是,服務器的所有者寧願不給我他的祕密密鑰。相反,他生成並提供給我一個他可以用來上傳文件的簽名。Amazon S3:無密鑰訪問

問題是我找不到執行該操作的方法。尤其是使用Amazon S3示例「S3Uploader」。

你對此有什麼想法嗎?提前

回答

1

感謝密鑰只需要計算簽名,所以如果你已經有一個簽名,你不需要它。但是,您確實需要訪問密鑰ID(以便亞馬遜知道使用哪個密鑰來驗證簽名)。

我快速查看了iOS sdk文檔,看起來他們看起來不像是提供了一種將簽名計算過程短路的方法。上傳文件是容易做的,你只是做一個PUT請求:

PUT /ObjectName HTTP/1.1 
Host: BucketName.s3.amazonaws.com 
Date: date 
Authorization: signatureValue 
Content-Length: 1234 

有您可以在documentation使用額外的頭部的細節。

另一個工作流程是,遠程服務可以使用amazon STS api返回臨時證書,而不僅僅授權將文件上傳到指定存儲區,而不是爲您提供簽名值。如果你走這條路線,那麼你就可以使用亞馬遜提供的SDK。