我可以使用预签名的上传 url 成功上传带有 .png 扩展名(图像/png)的文件。但是,当我尝试以相同的方式上传扩展名为 .mov 的视频文件时,我从 Amazon S3 得到 403。我尝试过使用 contentType movie/mov、video/quicktime,但它们都不起作用。当我将文件名更改为 .png 和 image/png 时,电影文件已正确上传。我只需要更改扩展名即可查看...有谁知道是否有 S3 Presigned File 上传支持的文件类型列表?我似乎无法在谷歌上找到任何细节......
我的 s3 存储桶策略:
{
"Version": "2008-10-17",
"Statement": [
{
"Sid": "AllowPublicRead",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::mytempbucket/*"
}
]
}
编辑:这就是我生成我的预签名网址的方式:
final GeneratePresignedUrlRequest generatePresignedUrlRequest =
new GeneratePresignedUrlRequest(s3BucketName, objectKey);
generatePresignedUrlRequest.setMethod(HttpMethod.PUT);
generatePresignedUrlRequest.setExpiration(expirationDate.toDate());
generatePresignedUrlRequest.setContentType(contentType);
所以我已经将 contentType 字符串传递给我的服务器以生成预签名的 url。