모든 RubyGem의 버전. Ruby on Rails 3.1.3, Ruby 1.9.2, CarrierWave 0.5.8 및 Fog 1.1.2를 사용하고 있습니다.안개 및 Amazon S3가있는 공개 URL
이미지 업로드에는 CarrierWave RubyGem을 사용하고 Amazon S3 파일 업로드에는 Fog RubyGem을 사용하고 있습니다. 내 CarrierWave 초기화 파일에서
나는이 : 나는이 개 업 로더 파일을 데
class PageAttachmentUploader < CarrierWave::Uploader::Base
CarrierWave.configure do |config|
if Rails.env.development? || Rails.env.development? || Rails.env.production?
config.fog_public = true
end
end
storage :fog
end
:
CarrierWave.configure do |config|
config.fog_credentials = {
provider: 'AWS',
aws_access_key_id: 'xxx',
aws_secret_access_key: 'xxx'
}
if Rails.env.production?
config.fog_directory = 'bucket1'
elsif Rails.env.development?
config.fog_directory = 'bucket2'
else
config.fog_directory = 'bucket3'
end
config.fog_public = false
config.fog_authenticated_url_expiration = 60
end
내가 업 로더 파일이 있습니다. 나는 사적인 것에, 그리고 한 사람은 공공에 맡기를 원한다.
PageAttachmentUploader가 호출 될 때 CarrierWave 구성을 덮어 쓰려고하고 URL을 공개로 설정하려고합니다. 이것은 로컬 머신의 매력처럼 작동하지만 스테이징, 샌드 박스 및 프로덕션에서는 작동하지 않습니다.
CarrierWave 인ializer에서 config.fog_public = true를 변경했습니다. 심지어 샌드 박스에서는 작동하지 않습니다. 이 문제를 어떻게 수정합니까?
네, 맞습니다! fog_public : 나를 위해 일한 업 로더 파일에서 true. 감사! – user1286523
다음이 답변을 투표하는 것을 잊지 마세요 :)! –
나에게 도움이 안된다. –