Ruby on rails 4 Carrierwave:动态查找正确的存储
我计划将所有本地存储的图像移动到AWS S3 为了使转换尽可能平滑,我不想一步完成迁移。相反,我希望应用程序检查S3中是否已经存储了一个映像。如果没有,那么它应该返回到本地文件系统并获取旧文件系统 可能吗 更新: 这是设置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
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
类AvatarUploader看看。那么你的意思是检查s3映像是否可用如果是加载它如果不加载该映像的本地版本?是的,完全正确。可能吗?我对你的设置不太了解。请更新您的问题,并向我们展示您的设置、型号和存储桶“别忘了删除您的凭据”