2012-06-19 29 views
15

Kẹp giấy doc về các lựa chọn url:Thiết lập tên miền đặt theo kiểu xô của (bucket.s3.amazonaws.com) với Rails và Kẹp giấy

Bạn có thể chọn để có tên miền đặt theo phong cách của thùng (xô .s3.amazonaws.com) hoặc kiểu đường dẫn (s3.amazonaws.com/bucket).

Làm cách nào để thiết lập thực sự có tên của nhóm được đặt kiểu miền? Tôi không thể ép kẹp giấy để tạo các url như bucket.s3.amazonaws.com thay vì s3.amazonaws.com/bucket.

+0

Tôi cũng đã gặp sự cố này - sẽ muốn biết liệu bạn có giải quyết được vấn đề này không! – michaelrshannon

Trả lời

1

Nếu bạn bộ chứa tên là DNS tương thích sau đó bạn có thể tạo url .s3.amazonaws.com/đối tượng ....

nhưng nếu nó không phải là DNS tương thích thì bạn không thể tạo ra như bạn muốn.

Cảm ơn

+0

Thực ra tôi có thể thấy hình ảnh được tải lên nếu tôi trực tiếp truy cập url bằng bucket.s3.amazonaws.com/the-path-to-image Tôi không thể tạo kẹp giấy tạo url theo cách này. – huoxito

14

Chỉ cần đặt nó như thế này:

Paperclip::Attachment.default_options[:url] = ':s3_domain_url' 

Hoặc như thế này:

Paperclip::Attachment.default_options.merge!(
    :url => ':s3_domain_url' 
) 
+1

Tôi đã thử điều đó. Nhưng nó trả về lỗi này Paperclip :: Errors :: InfiniteInterpolationError Các tài liệu cũng làm cho tôi nghĩ rằng nó sẽ là giải pháp http://rubydoc.info/gems/paperclip/Paperclip/Storage/S3. Nhưng nó không hoạt động. – huoxito

+24

Bạn cũng phải xác định tùy chọn ': path' bằng': url', vì tùy chọn mặc định bao gồm '": url "' gây ra ngoại lệ 'Paperclip :: Errors :: InfiniteInterpolationError'. Lỗi Paperclip tự động sửa các tùy chọn ': path' cho lưu trữ S3 ... trừ khi bạn sử dụng một: s3 _ * _ url trong nội suy của': url' (có đây là lỗi). Sử dụng ví dụ này: '" /: class /: attachment /: id_partition /: style /: filename '"'. –

+2

@JulienPortalier có một báo lỗi đơn lẻ ở cuối ví dụ của bạn đã ném tôi ra trong một vài giờ. Cài đặt chính xác là: ': path =>" /: class /: attachment /: id_partition /: style /: filename "' –

4

Thêm :url:path với các tùy chọn mặc định Paperclip trong bạn application.rb hoặc environment.rb

config.paperclip_defaults = { 
    storage: :s3, 
    s3_credentials: { 
    bucket: ENV['MY_S3_BUCKET_NAME'], 
    access_key_id: ENV['AWS_ACCESS_KEY_ID'], 
    secret_access_key: ENV['AWS_SECRET_ACCESS_KEY'] 
    }, 
    url: ':s3_domain_url',          # ADD THIS 
    path: '/:class/:attachment/:id_partition/:style/:filename' # ADD THIS 
} 
Các vấn đề liên quan