【发布时间】:2017-11-21 03:47:01
【问题描述】:
我想通过 Cloudfront 将带有签名 URL 的文件上传到 S3。 Cloudfront 行为中允许 HTTP PUT。 存储桶策略
{ "Sid": "2", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity E1C2T5UJU07REZ" }, "Action": [ "s3:PutObject", "s3:PutObjectAcl", "s3:GetObject" ], "Resource": "arn:aws:s3:::testback/*" }
CORS 配置中允许使用 HTTP PUT。 Cloudfront 用户也有读、写权限。 当我尝试上传带有签名 URL 的文件时。
curl -v -X PUT -F file=@hello.txt http://my-host.cloudfront.net/hello.txt?Expires=1514764800&Signature=MySig&Key-Pair-Id=My-KeyPair
我有一个错误:
InvalidRequest你提供的授权机制不支持。请使用 AWS4-HMAC-SHA256。 5D5DEF3D06F4583C8rBCpTUzYwm1ccc8IfkNtUnkuLxr3RZ2n7xn1j+VvP5dpG+3NMpHKPiNQ5tKpJjVliZ9UBI52vk=
日志:
2017-06-19 03:23:08 FRA54 726 My-IP PUT
我的主机.cloudfront.net /hello.txt 400 -
卷曲/7.50.1
Expires=1514764800&Signature=My-Sig&Key-Pair-Id=My-KeyPair - 错误 MMHwKFzGuBzrlgP0yV71elcwEp2RVBAwJRJD1A5rO4Na6UmeKvcZPQ==
我的主机.cloudfront.net http 838 0.235 - --
错误 HTTP/1.1
此外,GET、DELETE 也可以正常工作。
【问题讨论】:
标签: amazon-s3 amazon amazon-cloudfront