【问题标题】:Is it possible to specify a custom CDN for ActiveStorage?是否可以为 ActiveStorage 指定自定义 CDN?
【发布时间】:2019-10-02 02:28:24
【问题描述】:

我正在运行一个 Ruby on Rails 网站,目前正在使用 Rails 的 ActiveStorage 来存储我的图像和视频。

我正在使用基于 AWS 的存储空间 (DigitalOcean),他们最近推出了对自定义 CDN 支持的支持。意思是,我不会引用my-space.nyc3.digitalocean.com,而是引用assets.akinyele.ca

一切都已在我的 DigicalOcean 仪表板上进行设置。但我想知道是否可以在 ActiveStorage 上使用assets.akinyele.ca

我尝试不指定自动失败的bucket,因为看起来 ActiveStorage API 需要该字段,并使用它来构建空间存储服务的 URL。我还尝试将endpoint 指定为assets.akinyele.ca,但这给了我my-space.assets.akinyele.ca

这是配置的一部分:

# config/storage.yml
local: #
development: #

# This is what I need to replace, and this is was I am using right now.
amazon:
  service: S3
  access_key_id: <%= ENV["TANOSHIMU_SPACE_ACCESS_KEY_ID"] %>
  secret_access_key: <%= ENV["TANOSHIMU_SPACE_SECRET_ACCESS_KEY"] %>
  region: nyc3
  bucket: my space
  endpoint: 'https://nyc3.digitaloceanspaces.com'

谢谢。

【问题讨论】:

    标签: ruby-on-rails cdn rails-activestorage


    【解决方案1】:

    您可以尝试为ActiveStorage::Service::S3Service 覆盖url 方法

    附:在您的config/storage.yml 中使用bucket: ''

    【讨论】:

    • 谢谢。我会试一试,然后告诉你进展如何。
    • 我能够完全覆盖 URL,但是,由于我的文件受到保护,它们需要一个签名的 URL。用我的 CDN 替换 digicalocean url 时,我收到了 SignatureDoesNotMatch。你知道这是否可以修复吗?
    猜你喜欢
    • 2020-08-28
    • 1970-01-01
    • 2011-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多