将文件上传到 Amazon s3 - 客户端 javascript

Posted

技术标签:

【中文标题】将文件上传到 Amazon s3 - 客户端 javascript【英文标题】:Upload file to Amazon s3 - client-side javascript 【发布时间】:2017-07-23 15:34:25 【问题描述】:

我尝试将文件上传到 Amazon s3 这是我发送的参数 params send

并且 api 返回这个允许错误 error response

这是我的 cors 配置

<CORSRule>
    <AllowedOrigin>*</AllowedOrigin>
    <AllowedMethod>GET</AllowedMethod>
    <AllowedMethod>PUT</AllowedMethod>
    <AllowedMethod>POST</AllowedMethod>
    <AllowedMethod>DELETE</AllowedMethod>
    <AllowedHeader>*</AllowedHeader>
    <ExposeHeader>ETags</ExposeHeader>
    <ExposeHeader>x-amz-acl</ExposeHeader>
    <ExposeHeader>x-amz-request-id</ExposeHeader>      
</CORSRule>

【问题讨论】:

***.com/questions/17585881/… 我使用 AWS.S3 javascript api,这允许 accessKeyId 和 secretAccessKey,如果没有发送参数 ACL 和 GrandFullControl 都可以,但如果我发送这两个参数,我会收到此错误。 【参考方案1】:

错误消息是“不允许同时指定标准 ACL 和标头授予”。 (仅供参考,请在您的问题中直接包含错误消息)

放置对象时,您可以提供固定 ACL 或特定授权/被授权者,但不能同时提供两者。你已经提供了两者。

如果您的目标是允许任何经过身份验证的用户读取,那么只需使用经过身份验证的读取的罐装 ACL 选项。这将给予对象所有者 FULL_CONTROL 并给予 AuthenticatedUsers 组 READ 访问权限。详情请见Canned ACLS。

PS 你也错误地使用了 GrantFullControl。它的值必须是被授权者,而不是诸如“READ”之类的权限字符串。

【讨论】:

以上是关于将文件上传到 Amazon s3 - 客户端 javascript的主要内容,如果未能解决你的问题,请参考以下文章

猿创征文|技术成长之路-Java编程系列之文件OSS存储实践:Amazon S3实现文件上传下载

Amazon S3 预签名 URL - 手动或一次性上传无效

使用 NodeJS 将文件上传到 Amazon S3

将文件从 Android 缓慢上传到 Amazon S3

使用 Alamofire 将文件上传到 amazon s3

使用 HTTP PUT 将文件上传到 Amazon S3