S3に直接にファイルアップロード

Herokuでの大きいファイルアップロードはリクエストタイムアウトが30秒に設定されているのでやっかいです。

Herokuの公式でも4MBを超えるファイルをあげる場合はS3に直接あげてねって書いてあります。
https://devcenter.heroku.com/articles/s3#direct-upload

1
This is the preferred approach if you’re working with file uploads bigger than 4MB. The idea is to skip the hop to your dyno, making a direct connection from the end user browser to S3. While this reduces the processing required by your application it is a more complex implementation and limits the ability to modify (transform, filter, resize etc…) the file before storing in S3.

carriwaveを使っているのでcarriwave_directいいなと思いましたが、
carrierwave_direct

最終更新日が結構前でメンテされていないのかな?ってのとgemを使いすぎるとわけわかめになるので自力でやることにしました。

Read on →

carrierwaveのリンクの有効期間を個別に設定

全体でかける場合はこうですかね。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# config/initializers/carrierwave.rb
CarrierWave::SanitizedFile.sanitize_regexp = /[^[:word:]\.\-\+]/ # for Japanese
CarrierWave.configure do |config|
  config.fog_credentials = {
    provider:              'AWS',
    aws_access_key_id:     ENV[:access_key],
    aws_secret_access_key: ENV[:secret],
    region:                ENV['s3_region']
  }

  config.fog_public = false
  config.fog_directory = Settings.aws['s3_bucket']
  config.cache_storage = :fog
  config.fog_authenticated_url_expiration = 1.minutes.to_i
end
Read on →


国際化対応(お金関連)

国際化対応。
DBの日時はutcで保存して表示する時にユーザによって該当のタイムゾーンで表示とか色々な知見はあるかと思いますが。
お金の区切りもあるんですね。

Read on →


CircleCIでRuby2.5使おうとしたらbad interpreter

一度は成功していたのに急にCircleCI 1.0がこけるようになってしまいました。

1
set ruby version to 2.5.0  

1
2
3
ruby-2.5.0 - #generating default wrappers|/-\|/-\|.-\|/-\|/-.|/-\|/-\|.-\|/-\|/-.|/-\|/-\|.-\|/-\|/-.|/-\|/-\|.-\|/-\|.  
Using /home/ubuntu/.rvm/gems/ruby-2.5.0  
/home/ubuntu/.rvm/scripts/override_gem: /home/ubuntu/.rvm/rubies/ruby-2.5.0/bin/gem: /home/travis/.rvm/rubies/ruby-2.5.0/bin/ruby: bad interpreter: No such file or directory  

のようなエラー。

Read on →

ridgepoleの部分インデックスで毎回createとdrop indexをさせない書き方

railsでparanoiaとか使っていて、
mysqlで論理削除にdeleted_atがnullかどうかで論理削除判定していると
dbのuniq indexで辛い感じになります。

postgresqlでは部分インデックスなるものがあり、deleted_atがnullのものをuniq制約の条件に含めないとかいうことができます。

部分インデックス

Read on →


HerokuのNewRelicでRoleがUserで何もできない

子供が生まれましたのでしばらく釣りはお休みです。
春ぐらいになったら行きたいなぁ。

妻が帝王切開で産んだので、12月は週1の無理のない時間での出社を混ぜつつ、フルリモートで働かせていただいております。
大変ありがたいことです。

育児と家事と仕事で目が回るようでテレビなんてほとんど見れません。
シングルで育てている人には頭があがりませんね。

Read on →

自転車用ロッドホルダー

自転車のチェーンが度々外れるようになってきてしまったので
これを機に電動アシスト付きの自転車の購入を検討しました。
どうせなら車をどこかに止めて、そこから釣り場まで自転車で行ったりできるように車に積載可能なサイズを探しました。

実際に購入して、ロッドケースにまとめて竿をいれて担いで自転車乗っていたんですが、
自転車漕ぐ時に邪魔だし車の横すり抜ける時にぶつけそうになるので何かいい持ち運び方ないかと探していましたらいいのがありました。

Read on →