删除文件不适用于cors,但可通过AWS S3存储桶与cors一起上传

时间:2019-12-14 11:02:38

标签: javascript reactjs amazon-web-services amazon-s3

我正在使用react-s3从s3上传和删除文件。 如果存储桶是公共的,则对两种方法都可以正常工作,但是当将其设置为私有时, 仅上传文件有效,删除文件引发错误:

type: "cors"
url: "https://mylink.myfile"
redirected: false
status: 403
ok: false
statusText: "Forbidden"

这也是我对CORS配置的看法:

<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
    <AllowedOrigin>*</AllowedOrigin>
    <AllowedMethod>HEAD</AllowedMethod>
    <AllowedMethod>GET</AllowedMethod>
    <AllowedMethod>PUT</AllowedMethod>
    <AllowedMethod>POST</AllowedMethod>
    <AllowedMethod>DELETE</AllowedMethod>
    <ExposeHeader>ETag</ExposeHeader>
    <AllowedHeader>*</AllowedHeader>
</CORSRule>
</CORSConfiguration>

为什么会这样,我该如何解决

1 个答案:

答案 0 :(得分:0)

您必须仅为putObject生成预签名URL。通过预先签名的URL不支持删除。仅GETPUT支持它。在仔细检查是否应允许删除之后,考虑使用服务器端代码进行删除。