2012-07-09 170 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。