OSS探訪GitHubでログイン

cache/store・processing・ORM mountを組み合わせてRuby Web applicationのfile uploadを扱う

スコアの見方

OSS規模スコアはStars・Watchers・Forks・Contributorsを対数圧縮して重み付けした現在の規模指標(上限なし)です。発掘スコアは現在のOSS規模スコアから発掘時点のOSS規模スコアを引いた値、更新ペースは直近30日Commit数、成長モメンタムは直近の観測期間におけるOSS規模スコア差、OSS健全度は取得できた更新状況・Community Health・Releaseの0〜100評価です。

Stars
8,768
主要言語
Ruby
ライセンス
MIT
リポジトリ最終更新
2026/10/05
ページ内ナビ

概要

CarrierWaveはRuby application向けfile upload libraryです。temporary cacheとpermanent storeを分け、filesystemやcloud storageへfileを保存し、ActiveRecord modelへuploaderをmountできます。image processing、複数file、remote download、version生成も組み込めます。最新stable releaseは3.1.4で、masterは4.0.0.betaです。

特徴と向いている用途

公式資料に基づく紹介・実機未検証 · 内容確認日:

主な特徴

uploader classでcache・store・保存先・filenameを定義する

CarrierWave::Uploader::Baseを継承してstorage、store_dir、filename等を定義し、temporary cacheからpermanent storeへfileを移せます。ActiveRecordではmodel columnへuploaderをmountし、record lifecycleとfile保存を連携できます。

出典:[2]

image version・processing・multiple uploadをapplication要件に合わせて追加する

MiniMagick/Vips等によるprocessing、thumbnailなどのversion、multiple upload、metadata記録、remote URL downloadを組み合わせられます。4.0 betaではstored metadataの記録やdirect upload API等が追加されています。

出典:[2][4]

向いている用途

Railsを中心にmodelとfile attachmentを直接結び付けたいRuby applicationに向く

form uploadからmodel persistence、version生成、filesystem/cloud storageまで一つのuploader定義で管理したいRails/Rack applicationに適します。既存CarrierWave利用projectの継続保守にも向きます。

出典:[2]

導入前の確認

stable 3.1.4と4.0 betaを分け、upload contentとimage processingのsecurity policyを明示する

latest stableは3.1.4で、masterは4.0.0.betaです。4.0 betaはRuby 2.7+・Rails 7.0+を前提としbreaking changeを含みます。uploadではextensionだけでなくcontent_type_allowlistを使い、ImageMagick利用時はImageTragick対策も確認してください。remote downloadやstorage pathもuntrusted inputとして扱う必要があります。

出典:[2][3][4]

参考にした公式資料

  1. [1]carrierwaveuploader/carrierwave — GitHub repository(2026-10-06)
  2. [2]CarrierWave — README(2026-10-06)
  3. [3]CarrierWave — carrierwave.gemspec(2026-10-06)
  4. [4]CarrierWave — CHANGELOG(2026-10-06)
  5. [5]CarrierWave — v3.1.4 release(2026-10-06)
編集部からの補足

Rails modelとfile attachmentを直接結び付ける定番libraryです。stable 3.1.4と4.0 betaを混同せず、content type検証、ImageMagick設定、remote download、storage pathをsecurity boundaryとして設計してください。

3ステップで試す

  1. 1

    ソースを取得

    git clone --depth 1 https://github.com/carrierwaveuploader/carrierwave.git
  2. 2

    リポジトリへ移動

    cd carrierwave
  3. 3

    公式手順を確認

    READMEのInstallation / Quick Start / Getting Startedにある公式コマンドを続けて実行してください。

    find . -maxdepth 1 -iname 'README*' -exec sed -n '1,220p' {} \; -quit
公式READMEで確認

成長

成長の推移 · 直近30日

8,768 Stars

推移データを蓄積中です。

開発アクティビティ

直近90日・週次

Commit(直近30日)
21
Open PR
0

開発アクティビティを蓄積中です。

Built with

カテゴリとタグ

GitHubデータ

GitHubのデータGitHubの詳細データを見る
Stars
8,768
Forks
1,645
Watchers
132
Open Issues
14
Contributors
366
所有者種別
Organization
主要言語
Ruby
ライセンス
MIT
リポジトリ最終更新
2026/10/05

このOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。

情報の誤りを報告

掲載内容に誤りや古い情報があればお知らせください。

このページを読んで、次に何をすればよいか分かりましたか?
CarrierWave 3.1.4 / 4.0 betaとは?Ruby File Upload Library | OSS探訪