A Day in the Life

Filesystem as a service としての Dropbox と静的サイト・Google Photos の代替として考える

Dropbox は古くはローカルファイルシステムの同期から始まり、ファイル共有機能、Dropbox Paper を使ったドキュメント共有・管理、Dropbox Passwords といった 1passwords 的なものまで、様々なソリューションを提供している。

ファイルシステムは古くから使われていて、原始的だけど様々な方法で活用できる。たとえば、この文章は VSCode で markdown として書いているのだけど、保存先は Dropbox で同期しているファイルシステムで書いている。markdown のヘッダに追加している YAMLのメタデータが publish な記事が更新されたら、これまた Dropbox と同期している Linux サーバ上でファイルの mtime の更新を検知し、サイト用の静的ファイルがビルドされデプロイされる。

ファイルシステムを同期する、以外のふつうの http で叩ける Dropbox APIも用意されている。この Dropbox API をざっくり使ってみた感じ結構よくできていて、OAuth2 認証で手元のプログラムはもちろん、Web 上では自分のサーバサイドプログラムを経由せずとも認証が行なえ操作が行える。

つまり、Web 上のエディタで、Dropbox 上に置いた markdown を編集して保存なんかもできる。また、古き懐かし longpoll を使ってファイル更新検知なんかもできる。

このWebサイトの記事も、Windows 上の VSCode 上で書いて、実際のサイト上でどうレンダリングされ表示されるかは、これらの API を使って実際に secon.dev のWebサイト上でリアルタイムプレビュー表示している。VSCode で保存したら、ファイル更新が検知され、ブラウザ上で自動更新されるので、とりわけ写真が多い記事で便利に使っている。公開時には makrdown につけてる YAML の publish を true にして保存すればビルドが走る。


話は変わって、Google Photos 無料化が終わってしまうため、次の画像ホスティング先を検討している中で、Dropbox は月額1200円(年間契約の場合)で2TB。それなりに画像をアップロードしても、自分の用途では数年は十分(raw は Adobo Cloud Storage に Lightroom 経由でアップロードしてるし)持ちそうだ。誤ったファイル削除をしてしてしまっても、簡単に復元ができる。

画像のアップロードは、スマートフォンからは Dropbox アプリで写真を自動アップロードすればよく、PC からは Lightroom の現像書き出し先を Dropbox のファイルシステムにすれば、明示的にアップロードをしなくても勝手にアップロードされる。

Web からの Dropbox のファイルシステム上の画像は、共有リンクを取得しないと web からの直接アクセスはできないのだけど、共用リンクのクエリパラメータに ?raw=1 をつけることで、適切な Content-Type で返却してくれるので、自分のサイトから直リンができる。画像のサムネイルを Web から直接アクセスできる API は無い(欲しい...)のだけど、リサイズ後のバイナリデータを直接返す API はあるし、自前のファイルシステム上でリサイズ実行しても良いし、画像リサイズするような proxy サーバを挟んでも良いし、Dropbox のファイル変更通知の webhooks をトリガーにリサイズ画像を作る AWS API Gateway や GCP の Cloud Function なんかを作っても良いだろう。

まだ Dropbox を Google Photos の代替にしたわけではないのだけど、選択肢の一つとしてはアリなように思える。引き続き、2020年6月になる前に、自分にあったベストな管理方法を選びたい。


そんな感じで、古き良き Filesystem の同期サービスとしてそのまま使うこともできるし、Web ブラウザ + OAuth 認証で API を使うこともできる Dropbox、結構使い所がありそうで最近見直しているところ。

撮影機材α7C/FE 55mm F1.8 ZA
記事の一覧 >

関連するかもエントリー

このウェブサイトの実装 2022年12月版
以前このウェブサイトの実装 2020年版を書いてからしばらくたって、そろそろまたサイトに手を入れようかなと思っている(思っているだけでやらないかもしれない)ので、現状を書いてみる。コア部分この部分は2020年版と殆ど変わっておらず、markdown で書いたファイルを Dropb...
以前このウェブサイトの実装 2020年版を書いてからしばらくたって、そろそろまたサイトに手を入れようかなと思っている(思っているだけでやらな...
このウェブサイトの実装 2020年版
r7kamura さんや kzys さん に倣って、このウェブサイトの実装を紹介してみる。ホスティングGoogle Firebase Hosting を使って静的ファイルを配信してる。一部動的な実装に関しては、Cloud Functions for Firebase を使っている...
r7kamura さんや kzys さん に倣って、このウェブサイトの実装を紹介してみる。ホスティングGoogle Firebase Hos...
ブラウザにローカルファイルを Drag & Drop でフォトライフにアップロードする Greasemonkey Script
HTML5 File API つかうとローカルファイルをブラウザに Drag したファイルをハンドリングして binary やら data スキームとして扱うことができ、Firefox 3.6 や Chrome 5 ですでに使えるというのを今さらながら知ったhttp://gihy...
HTML5 File API つかうとローカルファイルをブラウザに Drag したファイルをハンドリングして binary やら data ...