【しずまれ!paperclip】development環境における画像アップロード時にてErrno::EACCESエラー

once upon a time……

スクール最終課題アプリのproduction環境において、S3に画像を上げることができるようになったのもつかの間、

development環境に戻って画像をアップロードする処理をした途端、真っ赤な画面とともに以下の見慣れない(?)エラーが……。

Errno::EACCES

エラー文を読み進めると、 Permission denied との文言もあったため、認証が効いてない系なのかなと推測。

やってしまったこと

多分最初に見つけた以下の記事の通り、わからないままディレクトリ作って権限を与えた。

$ sudo mkdir /users/icons
$ sudo chown $(whoami):admin /users/icons

Homebrewで入れたPythonでのlinkエラー問題

→処理は進み、画像URLを含むレコードは生成されたものの、

肝心の画像ファイルはどこにも保存されておらず。

解決策

結局権限の云々は、paperclipを用いる際のデフォルト設定を、環境をproductに絞らずにS3に沿ったものにしていたために出ていたエラーだった。

config/initializers/paperclip.rb

if Rails.env.production?
  Paperclip::Attachment.default_options[:url] = 'fujitami-fp.s3.amazonaws.com'
  Paperclip::Attachment.default_options[:path] = '/:class/:attachment/:id_partition/:style/:filename'
  Paperclip::Attachment.default_options[:s3_host_name] = 's3-ap-northeast-1.amazonaws.com'
end

config/environments/development.rb

config.paperclip_defaults = {
  url: '/system/users/:attachment/:id/:style/:filename'
}

上記保存先のパスは下記記事を参考に。

RailsのPaperclipについてまとめてみた - ハッカーを目指す白Tのブログ

:attachment を置くと(今回の場合)画像URLの格納先であるカラムを指定したディレクトリが、

:style を置くと画像サイズ(medium、original、thumbなど)ごとのディレクトリが作られるみたいです。

上記のようにしてひとまず解決。先にmkdirしたディレクトリが見つからないが……。


わからないままディレクトリ作って権限を与えた。

プログラミングの学習はじめてもう半年経つだろうが???

まあそれなりにハマったので、せめて私みたいなうっかりの人のお役に立てれば御の字です……。


ついでに今日見てよかった映画

タイピスト!

近所の映画館が周年記念で、500円で上映していたので観てきました。

画からも音からも、ちょっと昔の映画なのかなと思ってたら2012年作で、作り込みえぐい、変態かよってなりました(普段エンタメに触れていなさすぎるのがバレる)。

そういった観点のみでおすすめなのではなく、純粋に才能と鍛錬によって熟していく様を観測できる贅沢がたまらなかったのです。

能力は手塩をかけられることによってより伸びる、私がこの半年間眺めてきた方々もまたそれぞれ証明してきたことで、

そういった姿のひとつひとつから、いつも力をいただいています。