ActiveStorage에서 영구 URL 검색 지원 (Rails v6.1.0)

지금까지



지금까지의 ActiveStorage는 rails_representation_url
참고
htps : // m / shwld / ms / 07 A 2 cdc19c38156 E 52 Ae
htps : // 이 m / n mba kfm / ms / f7c1f9 77346891 b8c

ActiveStorage로 공개 URL 검색 가능



Rails 6.1에 올리는 작업을 했을 때 멋진 업데이트를 발견
https://魏Tub. 작은 m/오리 ls/오리 ls/레 땀 s/그 외 g/V6.1.0



아무래도 rails_storage_proxy_path(_url) 라고 하는 것과 rails_storage_redirect_path(_url) 라고 하는 헬퍼가 추가된 것 같습니다.

깨끗이 수중에서 확인


class User < ApplicationRecord
  has_one_attached :avator
end

user = User.first
rails_storage_proxy_path(user.avator)
# => "/rails/active_storage/blobs/proxy/*****/sample_avator.png"
rails_storage_redirect_path(user.avator)
# => "/rails/active_storage/blobs/redirect/*****/sample_avator.png"

과연 blobs의 뒤가 proxy인지 redirect인지에 따라 다릅니다.
localhost에서 해당 URL에 액세스하면 제대로 이미지가 표시되었습니다.


각 행동을 확인해 보았습니다.



rails_storage_proxy_url로 이동


HTTP/1.1 200 OKRails에서 파일 서비스에 액세스하고 파일 데이터를 200 상태로 반환합니다.
$ curl -I http://localhost:3000/rails/active_storage/blobs/proxy/*****/sample_avator.png
HTTP/1.1 200 OK
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1; mode=block
X-Content-Type-Options: nosniff
X-Download-Options: noopen
X-Permitted-Cross-Domain-Policies: none
Referrer-Policy: strict-origin-when-cross-origin
Date: Fri, 05 Feb 2021 02:27:10 GMT
ETag: W/"0749f09799210b2111ecea087fd54baa"
Last-Modified: Fri, 31 Dec 2010 15:00:00 GMT
Content-Type: image/png
Content-Disposition: inline; filename="sample_avator.png"; filename*=UTF-8''sample_avator.png
Cache-Control: max-age=3155695200, public
X-Request-Id: f15dee76-089f-46f9-b336-e965bec65b38
X-Runtime: 0.005844

rails_storage_redirect_url로 이동


HTTP/1.1 302 Found 로 돌아온 것을 볼 수 있다
Rails로 파일 서비스에 시간 제한 URL을 얻고있는 거기로 리디렉션하고 있을까
$ curl -I http://localhost:3000/rails/active_storage/blobs/redirect/*****/sample_avator.png
HTTP/1.1 302 Found
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1; mode=block
X-Content-Type-Options: nosniff
X-Download-Options: noopen
X-Permitted-Cross-Domain-Policies: none
Referrer-Policy: strict-origin-when-cross-origin
Date: Fri, 05 Feb 2021 02:27:31 GMT
Location: http://localhost:3000/rails/active_storage/disk/*****/sample_avator.png
Content-Type: text/html; charset=utf-8
Cache-Control: max-age=300, private
X-Request-Id: 87c221d3-e894-41ef-bebf-e65f155a40a6
X-Runtime: 0.015136

결론



편리!
지금까지는 ActiveStorage를 래핑하여 공개 엔드포인트를 얻을 수 있는 메소드를 살리고 있었기 때문에 사랑하고 싶은 삭제 PR을 던질 수 있었습니다

좋은 웹페이지 즐겨찾기