【问题标题】:Specify image expiration using CarrierWave and AWS?使用 CarrierWave 和 AWS 指定映像过期时间?
【发布时间】:2011-12-08 02:02:27
【问题描述】:

有谁知道如何为使用 CarrierWave 通过 Fog 上传到 AWS 的图像指定图像过期标头?

到目前为止我已经得到了这个:

CarrierWave.configure do |config|  
  config.fog_credentials = {  
    :provider               => #filtered  
    :aws_access_key_id      => #filtered  
    :aws_secret_access_key  => #filtered  
  }  
  config.fog_directory  = #filtered  
end  

将此数据添加到一堆已上传的图像中的奖励积分。

谢谢!我是菜鸟,我自己无法让它工作。

【问题讨论】:

  • 这个问题是指如何生成一个安全链接到一个在一定时间后过期的图像?还是缓存过期?
  • 缓存过期。我意识到我可以通过 'config.fog_attributes = {'Cache-Control'=>'max-age=315576000'}' ,但我还能做些什么。另外,我怎样才能将它传递给已经存储在 AWS 上的图像?

标签: ruby-on-rails amazon-s3 amazon-web-services carrierwave fog


【解决方案1】:

以防万一其他人遇到这个问题,上面的comments中提到了答案:

config.fog_attributes = { 'Cache-Control' => "public, max-age=#{1.year.to_i}" }

或者,如果使用carrierwave-aws gem:

config.aws_attributes = { cache_control: 'max-age=604800' }

您可以使用s3cmd 更新 s3 中现有对象的标头:

s3cmd --recursive modify --add-header="Cache-Control:public, max-age=604800" s3://bucket/path/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-26
    • 2022-08-09
    • 1970-01-01
    • 2020-10-15
    • 1970-01-01
    • 2013-10-09
    • 2018-11-29
    相关资源
    最近更新 更多