【问题标题】:Carrierwave: Dynamically find correct storageCarrierwave:动态找到正确的存储
【发布时间】:2017-02-17 13:02:45
【问题描述】:

我计划将所有本地存储的图像移动到 AWS S3。

为了使过渡尽可能顺利,我不想一步到位。相反,我希望应用程序检查 S3 中是否已经存储了图像。如果不是,那么它应该回退到本地文件系统并获取旧文件系统。

这可能吗?

更新: 这是设置

CarrierWave.configure do |config|
  config.fog_provider = 'fog/aws'
  config.fog_credentials = {
    provider:              'AWS',
    aws_access_key_id:     '...',
    aws_secret_access_key: '...',
  }
 config.fog_directory  = Rails.env
 config.fog_public = false
end

这是模型

class Item < ActiveRecord::Base
  mount_uploader :image, ImageUploader
end

没有什么特别的吗?设置是否与潜在的解决方案相关?

【问题讨论】:

  • 所以你的意思是检查 s3 图像是否可用如果是则加载它如果不加载该图像的本地版本?
  • 是的,完全正确。有可能吗?
  • 我对您的设置了解不多。您能否更新您的问题并向我们展示您的设置、模型和存储桶“不要忘记删除您的凭据”

标签: ruby-on-rails-4 carrierwave


【解决方案1】:

您也可以在上传者级别映射 Carrierwave 的每个设置。

class AvatarUploader < CarrierWave::Uploader::Base
  # Choose what kind of storage to use for this uploader:
  storage :fog

  # define some uploader specific configurations in the initializer
  # to override the global configuration
  def initialize(*)
    super

    self.fog_credentials = {
      :provider               => 'AWS',              # required
      :aws_access_key_id      => 'YOURAWSKEYID',     # required
      :aws_secret_access_key  => 'YOURAWSSECRET',    # required
    }
    self.fog_directory = "YOURBUCKET"
  end
end

看看Carrierwave Wiki Page

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-03-09
    • 2022-08-22
    • 1970-01-01
    • 2011-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多