Rails 4 앱에서 paperclip 및 aws-sdk 보석을 사용하고 있습니다. 더와 함께, 내 paperclip.rb의 설정에서 경로 옵션 :내 S3 URL을 올바르게 설정하기 위해 Paper Clip을 얻을 수 없습니다.
은 내가 정의하지 URL 옵션 : 그것은 같은처럼 내 업로드 된 이미지를 저장
Paperclip::Attachment.default_options[:path] = ":class/:attachment/:id_partition/:style/:filename"
:
모든 벌금을, S3에 저장됩니다. 그러나 그것은 디스플레이를 위해 이미지를 읽도록 허용하지 않습니다. = profile.avatar.url (: medium). 브라우저의 해당 URL로 이동하면 버킷 이름을 도메인으로 다시 포맷하라는 메시지가 표시됩니다. 마찬가지로 :
확인 중 문제가되지 않습니다. 나는 그 URL로 이동, 내 이미지를 볼 수 있습니다. 이제 Paperclip이 자동으로 URL을 형식화하는 방법을 알아야합니다. 경로 매개 변수 또는 난 그냥 종이 클립 :: 오류를 얻을 것이다 : InfiniteInterpolationError을 : 나는 당신이 단지
Paperclip::Attachment.default_options[:url] = ":s3_domain_url"
을 설정해야하는 종이 클립 문서에 내가도를 설정해야한다는 읽어 보시기 바랍니다.
그래서 나는 내 설정 파일을 설정 모두 결합 :Paperclip::Attachment.default_options[:path] = ":class/:attachment/:id_partition/:style/:filename"
Paperclip::Attachment.default_options[:url] = ":s3_domain_url"
가 작동하지
... 난 상관없이 나는 그것을 할 것을 * paperclip.rb을 폐기하고 설정/환경 /에 넣어 시도하지하지만 경로에 버킷 이름이 포함 된 도메인이없는 URL도 저장합니다. 그래서 두 가지 질문 :1) 어떻게 종이 클립이 자동으로 도메인 스타일에 저장된 URL을 포맷 할 수 있습니까?
2) 또는 더 나은 방법으로, S3가 현재 도메인 생성이 아닌 도메인 스타일 URL을 받아 들일 수 있습니까? 나는 s3_host_name 옵션에 추가 할 경우
편집
그래서, 다음은 URL의 도메인 스타일을 절약 할 수 있습니다. "(
을하지만 지금은 내가 %의 3 층의 인코딩을 가지는 것을 볼 : 그래서 모두 3 있어야 :
Paperclip::Attachment.default_options[:url] = ':s3_domain_url'
Paperclip::Attachment.default_options[:path] = ":class/:attachment/:id_partition/:style/:filename"
Paperclip::Attachment.default_options[:s3_host_name] = 's3-us-west-2.amazonaws.com'
을 그리고 그것은과 같이 모델에 내 URL을 저장합니다 ? ") URL을 엉망으로 만든다.
S3에서 버킷 정책을 만들었습니까? –