我正在开发一个将图片保存在 Amazon S3 服务器中的 iOS 应用程序。不幸的是,服务器的所有者不愿意给我他的密钥。相反,他生成并向我提供了他说我可以用来上传文件的签名。
问题是我找不到执行此操作的方法。尤其是 Amazon S3 示例“S3Uploader”。
你对此有什么想法吗?
提前致谢
密钥仅用于计算签名,因此如果您已经有签名,则不需要它。但是,您确实需要访问密钥 ID(以便亚马逊知道使用哪个密钥来验证签名)。
我快速浏览了 iOS sdk 文档,看起来它们并没有提供一种方法来缩短签名计算过程。上传文件很容易,您只需发出 PUT 请求:
PUT /ObjectName HTTP/1.1
Host: BucketName.s3.amazonaws.com
Date: date
Authorization: signatureValue
Content-Length: 1234
您可以在文档中使用额外标题的详细信息。
另一个工作流程是,远程服务可以使用亚马逊STS api 返回临时凭证,而不是为您提供签名值,而是仅授权将文件上传到指定的存储桶。如果你走这条路,那么你将能够使用亚马逊提供的 SDK。