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) 훅을 통해 등록하며, 아직 알파 단계임을 유의해야 합니다.