Rails 5.2中的Active Storage提供了与S3兼容的对象存储集成的支持。Exoscale也是一种S3兼容的对象存储提供商。下面是如何将Active Storage与Exoscale S3兼容的对象存储集成起来的步骤和示例代码:
gem 'fog-aws' gem 'aws-sdk-s3'
exoscale: service: S3 endpoint: https://sos-xxx-xxx-xxx-xxx.exo.io access_key_id: <%= Rails.application.credentials.dig(:exoscale, :access_key_id) %> secret_access_key: <%= Rails.application.credentials.dig(:exoscale, :secret_access_key) %> region: exo-region-1 bucket: your-bucket-name
注意:需要先在config/credentials.yml.enc中添加Exoscale的访问密钥和密钥ID。
config.active_storage.service = :exoscale
然后,您就可以在Rails应用程序中使用Active Storage与Exoscale S3兼容的对象存储了。示例如下:
<%= image_tag @article.image %>
@article.image.attach(io: File.open('/path/to/image.jpg'), filename: 'image.jpg', content_type: 'image/jpg')
这是如何在Rails应用程序中使用Active Storage与Exoscale S3兼容的对象存储的示例。