S3 のクローンである OSS の minio を使う

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 の勉強のためにもよいと思います。

ただ、エンドポイントが指定できないライブラリや既存のソフトウェアなどではソースを書き換えたりして対応しなければいけないのはつらいですね。

*1:ダウンロードアドレスは永続的

*2:以下の例では /mnt/data

*3:操作可能な範囲は限定的なので実際は CLI を使うことになるでしょう

*4:本記事では設定ファイルについては省略

Powered by はてなブログ