【发布时间】:2012-07-09 09:42:50
【问题描述】:
我正在开发一个将图片保存在 Amazon S3 服务器中的 iOS 应用程序。不幸的是,服务器的所有者不愿意给我他的密钥。相反,他生成并向我提供了他说我可以用来上传文件的签名。
问题是我找不到执行此操作的方法。尤其是 Amazon S3 示例“S3Uploader”。
你对此有什么想法吗?
提前致谢
【问题讨论】:
标签: ios api amazon-s3 photo bucket
我正在开发一个将图片保存在 Amazon S3 服务器中的 iOS 应用程序。不幸的是,服务器的所有者不愿意给我他的密钥。相反,他生成并向我提供了他说我可以用来上传文件的签名。
问题是我找不到执行此操作的方法。尤其是 Amazon S3 示例“S3Uploader”。
你对此有什么想法吗?
提前致谢
【问题讨论】:
标签: ios api amazon-s3 photo bucket
秘钥只需要计算签名,所以如果你已经有签名就不需要了。但是,您确实需要访问密钥 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。
【讨论】: