javascript - 删除文件不适用于 cors,但上传适用于带有 AWS S3 存储桶的 cors
问题描述
我正在使用 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>
为什么会发生这种情况,我该如何解决
解决方案
您必须仅生成预签名 URL putObject
。不支持通过预签名 URL 进行删除。它仅支持GET
和PUT
。在仔细检查是否应允许删除后,考虑使用服务器端代码进行删除。
推荐阅读
- javascript - 如何获取服务器中的所有表情符号并让机器人在聊天中发送表情符号
- java - Gitlab API 下载文件 + RestTemplate
- c++ - 如何在 C++ 中创建模板化包装类
- python-3.x - AttributeError:响应内容不是文本。问题是什么?
- python - 如何在for循环中创建列表?
- python - 通过按钮单击调用类方法的不同方式
- python - TensorFlow different input and output shapes for stateful LSTM model
- android - MediaRecorder Android 11 启动失败-1004
- c - 在 for 循环中使用模运算符的 if 语句
- matlab - Matlab EVAL – 将访问范围限制为选定的内置函数/变量子集?