Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 4 Carrierwave:动态查找正确的存储_Ruby On Rails 4_Carrierwave - Fatal编程技术网

Ruby on rails 4 Carrierwave:动态查找正确的存储

Ruby on rails 4 Carrierwave:动态查找正确的存储,ruby-on-rails-4,carrierwave,Ruby On Rails 4,Carrierwave,我计划将所有本地存储的图像移动到AWS S3 为了使转换尽可能平滑,我不想一步完成迁移。相反,我希望应用程序检查S3中是否已经存储了一个映像。如果没有,那么它应该返回到本地文件系统并获取旧文件系统 可能吗 更新: 这是设置 CarrierWave.configure do |config| config.fog_provider = 'fog/aws' config.fog_credentials = { provider: 'AWS', aws

我计划将所有本地存储的图像移动到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
class项

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

您也可以在上传程序级别映射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
类AvatarUploaderAWS',#必需 :aws_access_key_id=>YOURAWSKEYID',#必需 :aws_secret_access_key=>yourawscret',#必需 } self.fog_directory=“YOURBUCKET” 结束 结束

看看。

那么你的意思是检查s3映像是否可用如果是加载它如果不加载该映像的本地版本?是的,完全正确。可能吗?我对你的设置不太了解。请更新您的问题,并向我们展示您的设置、型号和存储桶“别忘了删除您的凭据”