我正在尝试开发一个表单,根据:https://devcenter.heroku.com/articles/direct-to-s3-image-uploads-in-rails说明直接从Rails 5.0.1应用上传图片到亚马逊s3。
我正在使用jQuery-File-Upload插件以及aws-sdk gem。尝试提交图像文件时,收到错误消息:
"对预检请求的响应未通过访问控制检查:否' Access-Control-Allow-Origin'标头出现在请求的资源上。起源' http://localhost:3000'因此不允许访问。响应的HTTP状态代码为400。"
据我了解,这表明CORS存在问题。
我在S3存储桶中配置了CORS权限,如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
<AllowedOrigin>http://localhost:3000</AllowedOrigin>
<AllowedOrigin>https://localhost:3000</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<AllowedMethod>PUT</AllowedMethod>
<AllowedMethod>POST</AllowedMethod>
<AllowedMethod>DELETE</AllowedMethod>
<AllowedHeader>*</AllowedHeader>
</CORSRule>
</CORSConfiguration>
我尝试用&#34; *&#34;替换原点,单独尝试每个网址,尝试不同的标题,并且似乎尝试了每个推荐。
此外,我的预约帖子已设为公开阅读&#39; :
def set_s3_direct_post
@s3_direct_post = S3_BUCKET_NAME.presigned_post(key: "uploads/#{SecureRandom.uuid}/${filename}", success_action_status: '201', acl: 'public-read')
end
而且,如果有任何混淆,我没有使用Heroku。
是否有其他人试图使用类似的上传方法并遇到同样的错误?
提前感谢您的帮助!