1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

[Rails] Active Storage の概要と要件

Posted at

Active Storageの概要

Amazon S3Google Cloud StorageMicrosoft Azure Storageなどのクラウドストレージサービスへのファイルのアップロードや、ファイルをActive Recordオブジェクトにアタッチする機能を提供します。

特徴

  • developmenttest環境向けのローカルディスクベースのサービスを利用できます
  • アップロードした画像の変形処理
  • PDFや動画などの画像以外のアップロードファイルの内容を代表する画像の生成

サードパーティソフトへの依存

Active Storageの機能は、サードパーティソフトウェアに依存しているため、別途インストールが必要

  • libvips画像解析や画像変形用
  • ffmpeg 動画プレビュー、ffprobeによる動画/音声解析
  • popplerまたはmuPDF: PDFプレビュー
  • image_processing 画像分析や画像加工のため

テーブル構成

Active Storageは3つのテーブルを利用します。

テーブル名 目的
active_storage_blobs ⠀ ⠀ ⠀ ⠀ ⠀ ⠀⠀⠀⠀⠀⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ ⠀ アップロードされたファイルに関するデータ(ファイル名、Content-Typeなど)を保存
active_storage_attachments モデルをblobsに接続するポリモーフィックなジョインテーブル。
※モデルのクラス名が変更された場合、このテーブルでマイグレーションを実行し、record_typeを新しいクラス名に更新する必要がある。
active_storage_variant_records バリアントトラッキングが有効な場合、生成された各バリアント(アップロードされた画像に対する加工処理)に関するレコードを保存する。

テーブルの詳細

active_storage_blobs

  • ファイルのメタデータ(例: ファイル名、Content-Type、サイズなど)を管理
  • 主要カラム:
    • id: 一意の識別子
    • key: ファイルの一意キー
    • filename: 元のファイル名
    • content_type: MIMEタイプ
    • metadata: ファイルに関する追加情報
    • byte_size: ファイルサイズ
    • checksum: ファイルのチェックサム

active_storage_attachments

  • Active Recordモデルとactive_storage_blobsを関連付けるためのポリモーフィックなジョインテーブル
  • 主要カラム:
    • id: 一意の識別子
    • name: アタッチメントの名前(例: avatar
    • record_type: 関連付けられるモデルのクラス名
    • record_id: 関連付けられるモデルのID
    • blob_id: 関連付けられるactive_storage_blobのID

active_storage_variant_records

  • 画像のバリアント(リサイズやトリミング...)に関する情報を保存
  • 主要カラム:
    • id: 一意の識別子
    • blob_id: 関連付けられるactive_storage_blob.id
    • variation_digest: バリアントの変更内容を示すダイジェスト

セットアップ

Active Storageをセットアップする際に必要なコマンドは以下の通りです。

$ bin/rails active_storage:install
$ bin/rails db:migrate

これにより、上記の3つのテーブルがデータベースに作成され、Active Storageの機能を利用できるようになります。

まとめ

以上です。
詳細は以下の公式ガイドをご確認ください🙏

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?