【问题标题】:Not able to direct upload to different region无法直接上传到不同区域
【发布时间】:2019-11-05 21:22:41
【问题描述】:

我正在尝试更改 active_storage 使用的 AWS S3 存储桶。我原来的条目如下

# config/storage.yml
amazon:
  service: S3
  access_key_id: <%= ENV['S3_ACCESS_KEY_ID'] %>
  secret_access_key: <%= ENV['S3_SECRET_ACCESS_KEY'] %>
  region: 'us-east-1'
  bucket: 'us-bucket-name'

这很好用。但我想将其更改为新的存储桶,名为aus-bucket-name,位于悉尼地区,地区代码为ap-southeast-2。所以我正在使用

# config/storage.yml
amazon:
  service: S3
  access_key_id: <%= ENV['S3_ACCESS_KEY_ID'] %>
  secret_access_key: <%= ENV['S3_SECRET_ACCESS_KEY'] %>
  region: 'ap-southeast-2'
  bucket: 'aus-bucket-name'

当我尝试上传到存储桶时,在 heroku 服务器日志中我看到了

 S3 Storage (1.9ms) Generated URL for file at key: xyz (https://aus-bucket-name.s3.ap-southeast-2.amazonaws.com/...

但是没有任何反应,上传页面只是等待,但没有上传任何内容。我正在使用direct_upload.js 进度指示器,但文件名框没有显示任何活动。

如果我返回 'us-east-1' 区域,则文件上传工作正常,但是当从 us-east 区域加载文件时,我有几个额外的文件上传框

看来来自悉尼地区的上传仍在等待中。我该如何解决这个问题?

【问题讨论】:

    标签: ruby-on-rails amazon-s3 rails-activestorage


    【解决方案1】:

    原来aus-bucket-name 没有正确的 CORS 权限,即它与 us-bucket-name 不同。当我正确设置 CORS 权限时,它工作正常。有关如何为 Amazon 设置 CORS 权限的说明,请参阅此 post

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-02
      • 2017-05-06
      • 1970-01-01
      • 2019-04-05
      • 2020-07-02
      • 2019-01-04
      相关资源
      最近更新 更多