ActiveStorage 프리뷰어는 ActiveStorage::Previewer
를 상속받아 구현되며, accept?
메서드(적용 가능 여부 확인)와 preview
메서드(미리보기 이미지 생성 및 저장)를 핵심으로 합니다. VideoPreviewer
가 그 예시입니다.
사용자 정의 프리뷰어 사례로 오디오 파형 미리보기 생성이 있습니다. ChunkyPNG
를 활용한 WaveformPreviewer
는 오디오 Blob 확인 후 파형 데이터를 기반으로 PNG 이미지를 생성합니다. 시각적 개선 로직이 적용되며, active_storage
초기화 파일에 등록하여 활성화됩니다.
Blurhash 이미지 미리보기는 이미지 지연 로딩의 플레이스홀더로 유용하지만, 기존 프리뷰어는 이미지 변환(variant
) 로직과 충돌하는 한계가 있습니다. 이를 해결하기 위해 Rails 8.1에 도입될 custom image transformer
기능이 소개됩니다. 이 기능은 기존 이미지 처리 백엔드를 확장하여 특정 변환 옵션에 따라 사용자 정의 로직을 수행, Blurhash 데이터를 PNG 파일로 변환합니다. ActiveSupport.on_load(:active_storage_blob)
훅을 통해 등록하며, 아직 알파 단계임을 유의해야 합니다.