Programing

HTTPS URL을 생성하도록 Paperclip을 구성 할 수 있습니까?

crosscheck 2020. 12. 29. 07:39
반응형

HTTPS URL을 생성하도록 Paperclip을 구성 할 수 있습니까?


전적으로 HTTPS로 제공되는 사이트에서 사용자가 업로드 한 이미지를 관리하기 위해 Paperclip을 사용하고 있습니다. IE7 / IE8에서 어리석은 보안 경고를 피하기 위해 SSL을 통해 이러한 이미지를 제공해야합니다. 일반적으로 다음과 같은 것을 사용하여 이미지를 렌더링합니다.

<%= image_tag @product.image.url(:large) %>

어디

class Product < ActiveRecord::Base

  has_attached_file :image,
                  :styles => {
                      :large => {:geometry => "616x450#"}
                  },
                  :storage => :s3,
                  :s3_credentials => {:access_key_id => "xxx", :secret_access_key => "xxx"},
                  :path => ":attachment/:id/:style/:basename.:extension",
                  :bucket => CONFIG['s3_media_bucket'],
                  :default_url => "/assets/image_missing.png"

생성 된 이미지 URL은 다음과 같습니다.

http://s3.amazonaws.com/media.example.com/images/6/large/image123.JPG

이것을 변경하는 마법의 Paperclip 옵션이 있습니까?

https://s3.amazonaws.com/media.example.com/images/6/large/image123.JPG

다음을 추가하기 만하면됩니다.

:s3_protocol => :https

이것은 문서에서 다룹니다 .

has_attached_file에 대한 몇 가지 S3 관련 옵션이 있습니다.
...

  • s3_protocol: S3 자산에 생성 된 URL에 대한 프로토콜입니다. 'http'또는 'https'가 될 수 있습니다. : s3_permissions가 : public_read (기본값) 인 경우 기본값은 'http'이고, : s3_permissions가 다른 경우 'https'입니다.

코드를 업데이트하려면 다음과 같이 : s3_protocol을 추가하십시오.

class Product < ActiveRecord::Base
has_attached_file :image,
              :styles => {
                  :large => {:geometry => "616x450#"}
              },
              :storage => :s3,
              :s3_credentials => {:access_key_id => "xxx", :secret_access_key => "xxx"},
              :s3_protocol => :https,
              :path => ":attachment/:id/:style/:basename.:extension",
              :bucket => CONFIG['s3_media_bucket'],
              :default_url => "/assets/image_missing.png"

참조 URL : https://stackoverflow.com/questions/7897710/is-it-possible-to-configure-paperclip-to-produce-https-urls

반응형