minio
これです。golang です。
インストールから起動まで
ビルド済みのバイナリが配布されています。単体ファイルです。素晴らしい。
64ビット版Linuxのバイナリの場合は以下のとおりにダウンロードします*1。
$ wget https://dl.minio.io/server/minio/release/linux-amd64/minio
そして実行権限を付け、その後に server
オプションを付けて実行します。引数としてデータを保存するディレクトリを指定します*2。
$ chmod +x minio $ ./minio server /mnt/data
デフォルトではポート番号 9000番 で待ち受けています。Webブラウザ でアクセスすれば GUI のインターフェイスで操作できます*3。
その他の起動時のオプション
--address
で minio のアドレスとポート番号が指定できます--config-dir
で設定ファイルの場所を指定できます*4
AWS の公式クライアントで操作する
S3 のクローンということもあり、AWS の公式の CLI で操作が可能です。ただし、エンドポイントが異なるので、下記のようにオプションで指定してあげます。
$ aws s3 cp your_file_name s3://your_bucket_name --endpoint-url https://your_minio_address/
環境変数で指定するリージョンは us-east-1
で OK です。
感想
ちょっとした個人サイトならばこれで十分ではないでしょうか。また、S3 の勉強のためにもよいと思います。
ただ、エンドポイントが指定できないライブラリや既存のソフトウェアなどではソースを書き換えたりして対応しなければいけないのはつらいですね。