【发布时间】:2021-05-27 22:37:39
【问题描述】:
我有一个 Bucket,我可以通过 NodeJS 轻松地将我的文件上传到其中。但不幸的是,我无法使用 ReactJS 直接上传我的文件。当我尝试时它返回 CORS 错误。
访问 XMLHttpRequest 在 'https://test_bucket.s3.ir-thr-at1.arvanstorage.com/temp.png?uploads' 来自原点“https://example.com”已被 CORS 策略阻止: 对预检请求的响应未通过访问控制检查:它 没有 HTTP ok 状态。
我问了一个问题here,但没有得到任何结果。
现在,我正在使用 Nginx 代理我的后端。是否可以通过 Nginx 直接从我的 ReactJS 代理到 S3 Bucket?
【问题讨论】:
-
其他帖子中的答案相同。我已经用 S3 做到了这一点。如果 Bucket 仍然是公开的,您应该修复 CORS 设置以使其正常工作。什么是处理上传部分?你有处理它的后端服务吗?或者你的 ReactJS 应用程序中真的有 API 密钥和秘密吗?
-
谢谢。我已经尝试了很多。您对修复 CORS 设置有什么建议?您是否直接在 React 之类的东西中进行过测试?
-
否 - 因为我永远不会在客户端 js 代码中与世界分享我的 API 密钥和秘密。我总是有一个后端服务为我处理上传。
-
正如另一个问题中的答案所述,您需要配置cors。这必须从您的 s3 服务提供商处完成。大多数主要提供商都有关于如何启用它的文档。如果您使用的提供商没有记录 CORS 设置,我建议您更换提供商
-
亲爱的@TimoStark 是的,你是对的。我也这样做了。但我的问题是我不能使用 axios 来上传大文件。因为网速差和axios超时。我说的对吗?