amazon-s3 - 了解 Active Storage Direct 上传错误:`存储“File_1.jpeg”时出错。状态:0`
问题描述
我们的应用最近切换到通过 Rails Active Storage(在 Rails 5.2 中引入)直接上传到 S3。在大多数情况下,它工作正常,但我们注意到大约 2% 的时间会抛出错误。
到目前为止,我们已经看到了以下内容:
状态 0(主要是 Safari/Mobile Safari):
Error storing "File_1.jpeg". Status: 0
状态 403:
Error storing "File_1.jpeg". Status: 403
读取错误:
Error reading "File_1.jpeg".
我想最后一个错误与文件本身无效或损坏有关。但是,我们不确定是什么导致了前两个错误。环顾四周,我注意到提到 CORS 设置不正确的帖子。但是,我们之前在 S3 上进行了一些配置更改,我也认为如果这是一个 CORS 问题,我们会更频繁地看到失败。这就是我们的 CORS 设置:
<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<MaxAgeSeconds>3000</MaxAgeSeconds>
<AllowedHeader>*</AllowedHeader>
</CORSRule>
<CORSRule>
<AllowedOrigin>https://app.ourapp.com</AllowedOrigin>
<AllowedMethod>PUT</AllowedMethod>
<MaxAgeSeconds>3600</MaxAgeSeconds>
<AllowedHeader>Origin</AllowedHeader>
<AllowedHeader>Content-Type</AllowedHeader>
<AllowedHeader>Content-MD5</AllowedHeader>
<AllowedHeader>Content-Disposition</AllowedHeader>
</CORSRule>
</CORSConfiguration>
我们注意到在一次多次上传中,用户能够成功地将 12 个文件上传到活动存储,但有 1 个文件出错,状态为 0。文件本身没有损坏或其他任何东西。
任何线索有时可能导致直接上传片状?
解决方案
以下对我有用:
[
{
"AllowedHeaders": [
"Authorization"
],
"AllowedMethods": [
"GET"
],
"AllowedOrigins": [
"https://example.com"
],
"ExposeHeaders": [],
"MaxAgeSeconds": 3000
},
{
"AllowedHeaders": [
"*"
],
"AllowedMethods": [
"PUT"
],
"AllowedOrigins": [
"https://example.com"
],
"ExposeHeaders": []
}
]
从这里得到它。
推荐阅读
- java - 用于将用户批量上传到 Azure B2C 活动目录的 Java 控制台应用程序
- sql - 尝试在 Hive 查询中连接包含 HTML 的字符串时出现 ParseException
- javascript - jQuery启用/禁用提交按钮
- r - R如何基于汇总数据库添加线性趋势线
- sequelize.js - 用于 Sequelize 的与方言无关的“NOW”功能
- osgi - 将 sling:OsgiConfig 读入 @ObjectClassDefinition
- html - Bootstrap 导航汉堡下拉菜单向左延伸太远
- java - 如何从 Java 中的 Cloud Function 触发 Cloud Dataflow 管道作业?
- java - 如何在java中使用apache poi在word中设置表格尺寸和间距
- python - 运行时错误:组(
): 未找到设计变量“paraboloid.x”的输出