我正在开发一款可以在Amazon S3服务器中保存图片的iOS应用。不幸的是,服务器的所有者不愿意给我他的秘密密钥。相反,他生成并提供了一个签名,他说我可以使用它来上传文件。
问题在于我无法找到执行此操作的方法。特别是使用Amazon S3示例" S3Uploader"。
你对此有什么想法吗?
提前致谢
答案 0 :(得分: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。