首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >使用S3预签名上传URL上传电影文件

使用S3预签名上传URL上传电影文件
EN

Stack Overflow用户
提问于 2015-12-25 20:36:02
回答 1查看 2.7K关注 0票数 1

我可以成功地上传文件的.png扩展名(图像/png)使用预先签名的上传网址。然而,当我尝试用相同的方式上传视频文件(扩展名为.mov )时,我从亚马逊S3上得到了403。我试过使用contentType电影/mov、视频/快速时间,但它们都不起作用。当我将文件名更改为.png和image/png时,电影文件被正确上传。我只是想换个分机看.是否有人知道S3预签名文件上传是否有受支持的文件类型列表?我似乎找不到任何细节搜索.

我的s3桶策略:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
    "Version": "2008-10-17",
    "Statement": [
        {
            "Sid": "AllowPublicRead",
            "Effect": "Allow",
            "Principal": {
                "AWS": "*"
            },
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::mytempbucket/*"
        }
    ]
}

编辑:我就是这样生成我的预言符的:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
final GeneratePresignedUrlRequest generatePresignedUrlRequest = 
                    new GeneratePresignedUrlRequest(s3BucketName, objectKey);
            generatePresignedUrlRequest.setMethod(HttpMethod.PUT); 
            generatePresignedUrlRequest.setExpiration(expirationDate.toDate());
            generatePresignedUrlRequest.setContentType(contentType);

因此,我将contentType字符串传递给我的服务器,以生成预先签名的url。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-26 11:59:34

用于上传的预签名URL的签名是由多个参数构建的,其中一个参数是Content-Type头。

没有受支持类型的“列表”--但是无论您在生成签名的Content-Type时提供什么,都必须与在实际的PUT请求中提供的请求头相同。

由于您没有显示任何代码,也没有提到任何关于您如何生成预签名的URL或如何进行上载的详细说明,所以很难具体地推测您做错了什么,但是如果签名和实际上传之间不匹配,它肯定无法工作。

如果您读取错误响应的响应主体,通常会有一个部分根据失败请求的实际属性告诉您“要签名的字符串”应该是什么。无论这在多大程度上与您用来生成签名的内容不匹配,这就是您的错误所在。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34468526

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文