如何更改 Active Storage Service url_expires_in 超时?
Posted
技术标签:
【中文标题】如何更改 Active Storage Service url_expires_in 超时?【英文标题】:How do you change the Active Storage Service url_expires_in timeout? 【发布时间】:2019-03-05 09:48:58 【问题描述】:当 Active Storage 创建签名的变体 URL 时,它会设置默认超时 5.minutes
。我真的很想增加这个,但我一直在搜寻 Github 问题、代码潜水,但在任何地方都找不到。
在服务类的第 44 行设置了 class_attribute
,但如何覆盖?
https://github.com/rails/rails/blob/5-2-stable/activestorage/lib/active_storage/service.rb#L44
我正在使用url_for
生成签名的变体链接,然后似乎没有任何方法可以更改设置。
任何帮助将不胜感激。
谢谢! :)
【问题讨论】:
您如何看待继承?来自 service.rb 类并覆盖 url_expires_in 的值? 【参考方案1】:直接设置ActiveStorage::Service.url_expires_in
,例如在初始化器中:
# config/initializers/active_storage.rb
ActiveStorage::Service.url_expires_in = 1.hour
Rails 6 将添加 config.active_storage.service_urls_expire_in
:
# config/initializers/active_storage.rb
Rails.application.config.active_storage.service_urls_expire_in = 1.hour
【讨论】:
先生这个配置有限制吗?说你能做一个5.months
持续时间配置吗?
@RicardoGreen 根据github.com/rails/rails/issues/31581,如果您使用 S3,则有 1 周的限制。
@George Claghorn 如何生成 active_storage.rb 文件?我的洞项目中没有 active_storage.rb 文件。
如何创建一个不会过期的文件链接?
@Corey 您现在可以通过设置公共存储桶来设置永久链接。 edgeguides.rubyonrails.org/…以上是关于如何更改 Active Storage Service url_expires_in 超时?的主要内容,如果未能解决你的问题,请参考以下文章
如何从 Rails Active Storage 中的 url 附加图像
如何使用 Active Storage 保留存储空间和加载时间?
如何使用 Rails 和 Active Storage 实现 AWS S3 分段上传?
Ruby on Rails - Active Storage - 如何只接受 pdf 和 doc?
如何使用 Active Storage Rails 上传到具有 AES256 加密(服务器端加密)的 AWS S3 存储桶?