uploadコマンド
(2018/4/27)
重要じゃないけれどとりあえず保存しておきたいファイルや、一時的にファイルを共有したいときなどのためにuploadというコマンドを使ってなんでもS3にアップロードしている。
$ upload filename
とすると、ファイルをS3にアップロードしてアップロード先のURLが帰ってくる。Gyazoの感覚に近いかもしれない。後で使う可能性がある場合はURLをGyazoやScrapboxに記録しておく。フォルダとか考えなくて良いのでラクである。S3は安くて便利なのでこういう用途には良いと思う。 s3cmd コマンドが必要
~/.s3cfgにS3のアカウント情報を書いておく
masui.orgというバケットが有ることを仮定している
数テラバイトのデータをS3に置きっぱなしなのだが月額課金は$10ぐらいである。動画でもなんでもアップロードしている。ハッシュ値がファイル名になるので他人からアクセスされにくいだろう。
いまどき絶対にローカルに置いておきたいファイルはどういうものだろう。開発中のソフトウェアや文書はGitHubに置くだろうし。GitHubにも置きたくないのはid_rsaとかぐらい?
code:upload.rb
require 'digest/md5'
require 'shellwords'
file = ARGV.shift
exit unless file
exit unless File.exist?(file)
ext = ''
if file =~ /^(.*)(\.\w+)$/ then
ext = $2
end
hash = Digest::MD5.new.update(File.read(file)).to_s
dstfile = "s3://masui.org/#{hash0}/#{hash1}/#{hash}#{ext}" 改良版を作った話があった (2018/12/14)