2012-03-03 33 views
7

Tôi đang cố gắng tìm ra cách thiết lập CarrierWave để làm việc với Fog và Amazon S3. Trên S3, tôi có một thùng, "bucket1" với thư mục "hình ảnh". Tải lên hoạt động tốt. Ví dụ: hình ảnh có thể được tải lên biểu mẫu nào đó ở dạng https://s3.amazonaws.com/bucket1/images/picture/pic1.jpg. Tuy nhiên, trong chế độ hiển thị, khi tôi gọi trình trợ giúp image_url, tôi nhận được https://s3.amazonaws.com/images/picture/pic1.jpg. Tôi đang thiếu gì ở đây?CarrierWave và Fog, S3 bucket và cấu hình store_dir

#config/initializers/carrierwave.rb 
CarrierWave.configure do |config| 
    config.fog_credentials = { 
    :provider    => 'AWS', 
    :aws_access_key_id  => 'aws_key', 
    :aws_secret_access_key => 'aws_secret' 
    } 
    config.fog_directory = 'bucket1' 
    config.fog_host  = 'https://s3.amazonaws.com' 
    config.fog_public  = true 
    config.fog_attributes = {'Cache-Control'=>'max-age=315576000'} 
end 

#app/uploader/image_uploader.rb 
def store_dir 
    "images/#{model.class.to_s.underscore}" 
end 

#app/views/pictures/show.html.erb 
<%= image_tag @picture.image_url if @picture.image? %> 
+0

được bạn lưu trữ nó trên Heroku? – noob

+0

Tôi đang lưu trữ nó thông qua HostGator (dev) & EC2 (prod) –

Trả lời

4

Hãy thử loại bỏ các

config.fog_host = 'https://s3.amazonaws.com'

cấu hình và thay vào đó đưa

lưu trữ: sương mù

tại của bạn người tải lên. Nó có thể ghi đè đường dẫn thực tế với đường dẫn bạn đang cung cấp.

+0

Tôi đã có cả hai cấu hình trước đây. Sửa chữa của tôi chỉ là để loại bỏ các fog_host. Bây giờ nó tải lên https://bucket1.s3.amazonaws.com/images/picture/image_name.jpg. Mà chỉ hoạt động tốt! –

1

Mặc dù không trực tiếp nảy mầm với câu hỏi cụ thể này, nhưng cảm thấy rằng thông tin sau đây vừa có liên quan vừa hữu ích.

Nếu bạn đang sử dụng các liên kết ngoài công lập trong S3, bạn có thể điều khiển TTL của các liên kết này với tham số fog_authenticated_url_expiration cấu hình:

... 
config.fog_public = false 
config.fog_authenticated_url_expiration = 600 # 10 minutes 
... 
Các vấn đề liên quan