保存先の変更
GoogleのVisionAIというAPIを用いてアプリケーションへ投稿画像に対する自動タグ付け機能を実装した際に、refileの画像ファイルの保存先を変更する必要があった為、備忘録として本記事を作成。
refileのデフォルトでの画像ファイルの保存先はtmp/uploads/storeになっており、今回はその保存先をpublic/uploadsに変更。
config/initializers階層下にファイルを作成
config/initializers内に新たにrefile.rbファイルを作成し、以下の記述を行う。
これにより、アップロードされた画像の保存先を変更することが可能。
Refile.backends['store'] = Refile::Backend::FileSystem.new('public/uploads/')
既存のデータがあった場合、tmp/uploads/storeからrefile.rbに移す
すでにアップロードされた画像データが存在した場合、上記の手順でファイルの読み込み先を変更した為に、tmp/uploads/store内の既存のデータの読み込みが出来なってしまう。
その場合、既存のデータをpublic/uploadsに移動させることによって、画像ファイルの読み込みが可能となる。
ただしrefileの機能を新たに実装する場合には、こちらの手順は必要ない。
$ cp tmp/uploads/store/* public/uploads/
cpコマンドを用いて既存のデータをpublic/uploadsにコピーする。
これを開発環境、本番環境共に行う。
記載内容に間違いがあった場合はご指摘頂けると嬉しいです。
ご連絡お待ちしております。