uploadコマンドでscrapboxに任意のファイルを投げる
masui先生のuploadコマンド
任意のファイルをgyazoっぽくs3に投げる
moyamin.iconもやってみた
s3に投げるところはs3cmdというコマンドを使っている
awscliに変更
実際やってることは、自分用のs3にファイルを投げて、直ちにscrapboxにリンクをはるということ
これで自分の所有するいろんなファイルが、クラウドで管理され、めちゃくちゃ見つけやすくなる
前提
awscliがある
$ brew install awscli
awscliの接続するための設定が済んでいる
awsの方でアクセスキー作成
アクセスキーが~/.awsにファイルとしてある
$ aws configure
または、直接~/.awsに設定を手書きする
aws s3にバケットを用意する
注意 リージョンはバケットを作るときにしか指定できず、後から変更ができない
日本の場合は、アジア・パシフィック東京じゃないと遅いです
これをパスの通った場所に置く
requireしてるものは標準ライブラリなので、古すぎないrubyなら直ちに動くはず
code:rb
require 'digest/md5'
require 'shellwords'
file = ARGV.shift
exit unless file
exit unless File.exist?(file)
exit unless system "which aws > /dev/null"
ext = ''
if file =~ /^(.*)(\.\w+)$/ then
ext = $2
end
hash = Digest::MD5.new.update(File.read(file)).to_s
bucket = "miyamonz"
dstfile = "s3://#{bucket}/#{hash0}/#{hash1}/#{hash}#{ext}" bucketとかurlは自分の見て修正してね
特定のzipファイルがFile.readできない
read': Invalid argument @ io_fread - Gumball.zip (Errno::EINVAL)
実際にこれやってみたのだが、大変快適moyamin.icon
さらに、上のuploadコマンドを使ってアップロードしてscrapboxに記録する、scrapコマンドにしておいた
code:scrap.rb
require 'shellwords'
file = ARGV.shift
exit unless file
exit unless File.exist?(file)
url = upload #{Shellwords.escape(file)}.delete("\n")
base = File.basename file
project = 'm5813k' # your project
openはmacのコマンドなので、他の環境の場合は適宜別のを使えば動くはず
半角スペースとかちゃんと処理できてない?
あとは、ファイルの内容に関連するメモやリンクを書けばいい
aws s3とscrapboxに隕石が降ったりして崩壊しないかぎり、
永遠に忘れることのない最高のクラウドストレージのできあがり!
あなたの動画ファイル等が階層構造から解き放たれる
https://gyazo.com/2a96a25713bf8d9b7fadde124ff82612
快適!
気にならないくらい安いですが、料金には気をつけましょう