ruby-on-rails 具有Exoscale S3兼容对象存储的主动存储

huwehgph  于 2022-11-19  发布在  Ruby
关注(0)|答案(1)|浏览(161)

在Rails 6应用程序中,我需要将Active Storage与S3 compatible object storage provided by Exoscale配合使用。
第一次尝试使用以下storage.yml

exo:
  service: S3
  endpoint: https://sos-bg-sof-1.exo.io/
  access_key_id: ENV['KEY']
  secret_access_key: ENV['SECRET']
  region: bg-sof-1
  bucket: testbucket

它尝试将文件存储在https://testbucket.sos-bg-sof-1.exo.io/...。但是,在Exoscale SOS上,文件存储在https://sos-bg-sof-1.exo.io/testbucket/...
因此,我尝试按如下方式更新配置

exo:
  service: S3
  endpoint: https://sos-bg-sof-1.exo.io/testbucket
  access_key_id: ENV['KEY']
  secret_access_key: ENV['SECRET']
  region: bg-sof-1
  bucket: ""

这会生成错误,因为存储桶不能为空。
是否有一种方法可以将活动存储器与'https://ENDPOINT/BUCKET/...'格式的URL一起使用?

0yg35tkg

0yg35tkg1#

在SOS(以及AWS S3)中,https://sos-bg-sof-1.exo.io/testbucket/object1等同于https://testbucket.sos-bg-sof-1.exo.io/object1
前者被称为“路径样式”,而后者被称为“虚拟托管”,通过“路径样式”访问现在被认为是过时的。
如果要强制使用路径样式,可以将参数force_path_style设置为true

相关问题