swift中的S3 Authorization标头

时间:2016-09-22 23:55:32

标签: swift amazon-s3

我尝试向S3发送多部分表单请求,并根据S3 documentation我可以在授权标头或查询字符串中将签名信息添加到请求中。对我来说,授权标题看起来更简单。

Authorization: AWS4-HMAC-SHA256 Credential=AKIDEXAMPLE/20150830/us-east 1/iam/aws4_request, SignedHeaders=content-type;host;x-amz-date, Signature=5d672d79c15b13162d9279b0855cfba6789a8edb4c82c400e06b5924a6f2b5d7

在Swift中,这只是一个字符串,如:

request.setValue("AWS4-HMAC-SHA256 Credential=AKIDEXAMPLE/20150830/us-east 1/iam/aws4_request, SignedHeaders=content-type;host;x-amz-date, Signature=5d672d79c15b13162d9279b0855cfba6789a8edb4c82c400e06b5924a6f2b5d7", forHTTPHeaderField: "Authorization")

1 个答案:

答案 0 :(得分:0)

Authorization:标题和查询字符串都不能说是特别“#34;更直接,"因为它们基本上是由相同的信息构建的(除了X-Amz-Expires的添加,以及在签名代码中必要的过期逻辑添加,如查询字符串中所要求的)......但这两个选项都不适用

使用表单时 - 只在上传时才会这样做,所以我认为这就是你正在做的事情 - 签名信息是作为表单参数提供的。

请参阅http://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-post-example.html