前回の記事に書いていない内容(主にObject Storageからの配信部分)があり、最近そこへ変更を加えて、ブログを更新しようとして書いていなかったことに気づいたので別の記事として残します。

現在のますとどんちほーでのファイル配信部分

現在はストレージを変更して(US->JP)以前よりも高速で安定するようになったので、アップロード ダウンロード共に別のプロセスを挟む必要性は薄れましたが、間に別のプロセスを挟む構成の方が変更が楽(変更部分を吸収して移行時の停止時間を減らせる)なのでこの構成にしています。

nginxはリクエストを受けると最初にローカルをまず探しに行き、そこになければimgdon-rsへリクエストを投げます。

imgdon-rsは今回変更した部分で、設定されているObject Storageからファイルを取得して返却するプログラムです。

Object Storageは複数設定可能で、どのバケットにもファイルが存在しなければ404を返します。

この機能によってObject Storage変更時に両方登録しておくだけでファイルの移動をゆっくりと行う事ができます。(500GB前後あるので...)

imgdon-rsは以前はGolangで書いたものでしたが、メモリの消費量で問題が発生し、定期的に再起動をかけることで回避していましたが今回Rustで書き直しました。(発生まで数ヶ月かかるのに加えてコードも雑で書き直したかったので)

このプログラムは一部処理を変更した同等の物をGitHubにobject-proxy-rsという名前で公開しています。

maa123/object-proxy-rs
ObjectStorageをhttpで公開. Contribute to maa123/object-proxy-rs development by creating an account on GitHub.