无法直接上传到不同地区

Not able to direct upload to different region

我正在尝试更改 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 进度指示器,但文件名框不显示任何 activity。

如果我回到 'us-east-1' 地区,那么文件上传工作正常,但是当我从美国东部地区加载文件时,我有几个额外的文件上传框

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

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