Amazon S3 互換のMinioを少し試してみました.MinioはGo製でマルチプラットホーム(Linux/Windows/macOS/FreeBSD等)で動作します.
Minioダウンロード
いろいろな環境で動作します.Linux amd64だけでもDocker, Snap, 単一バイナリなどが選べます.
今回はお手軽にバイナリで試します.
minio.sha256sum
のファイル名はminio.RELEASE.2018-02-09T22-40-05
を見ているようなので目diffで…….(minio.asc
はminio
を見てますね.)
$ wget https://dl.minio.io/server/minio/release/linux-amd64/minio
$ wget https://dl.minio.io/server/minio/release/linux-amd64/minio.sha256sum
$ cat minio.sha256sum
98cf1e082368e3f57f2be39dd49b1abffca4068e6d3e859f300ae93b4e5f6a5a minio.RELEASE.2018-02-09T22-40-05Z
$ sha256sum -c minio.sha256sum
sha256sum: minio.RELEASE.2018-02-09T22-40-05Z: そのようなファイルやディレクトリはありません
minio.RELEASE.2018-02-09T22-40-05Z: FAILED open or read
sha256sum: 警告: 一覧にある 1 個のファイルが読み込めませんでした
$ sha256sum minio
98cf1e082368e3f57f2be39dd49b1abffca4068e6d3e859f300ae93b4e5f6a5a minio
$ wget https://dl.minio.io/server/minio/release/linux-amd64/minio.asc
$ gpg --verify minio.asc
gpg: 署名されたデータが'minio'にあると想定します
gpg: 2018年02月10日 07時40分19秒 JSTに施された署名
gpg: RSA鍵12C74390F9AAC728を使用
gpg: "Minio Trusted <trusted@minio.io>"からの正しい署名 [不明の]
gpg: *警告*: この鍵は信用できる署名で証明されていません!
gpg: この署名が所有者のものかどうかの検証手段がありません。
主鍵フィンガープリント: 4405 F3F0 DDBA 1B9E 68A3 1D25 12C7 4390 F9AA C728
実行権を付与します.
ダウンロードページや READMEにはamd64のしか載っていませんが,以下のあたりを見ると386, ARM, ARM64などもあります :)
minio USAGE
$ ./minio -h
NAME:
minio - Cloud Storage Server.
DESCRIPTION:
Minio is an Amazon S3 compatible object storage server. Use it to store photos, videos, VMs, containers, log files, or any blob of data as objects.
USAGE:
minio [FLAGS] COMMAND [ARGS...]
COMMANDS:
server Start object storage server.
gateway Start object storage gateway.
update Check for a new software update.
version Print version.
FLAGS:
--config-dir value, -C value Path to configuration directory. (default: "/home/mk/.minio")
--quiet Disable startup information.
--json Output server logs and startup information in json format.
--help, -h Show help.
VERSION:
2018-02-09T22:40:05Z
Minioをサーバとして実行
ストレージに/media/mk/disk
を指定して実行しています.
$ ./minio server /media/mk/disk
Created minio configuration file successfully at /home/mk/.minio
Drive Capacity: 4.5 GiB Free, 466 GiB Total
Endpoint: http://192.168.2.200:9000 http://172.17.0.1:9000 http://127.0.0.1:9000
AccessKey: AUI0SRSWF5NOG1JLQNX6
SecretKey: LJ3JI3+VR8aYQR/vCA9QjVkVF4xddkU76Bb1ZW84
Browser Access:
http://192.168.2.200:9000 http://172.17.0.1:9000 http://127.0.0.1:9000
Command-line Access: https://docs.minio.io/docs/minio-client-quickstart-guide
$ mc config host add myminio http://192.168.2.200:9000 AUI0SRSWF5NOG1JLQNX6 LJ3JI3+VR8aYQR/vCA9QjVkVF4xddkU76Bb1ZW84
Object API (Amazon S3 compatible):
Go: https://docs.minio.io/docs/golang-client-quickstart-guide
Java: https://docs.minio.io/docs/java-client-quickstart-guide
Python: https://docs.minio.io/docs/python-client-quickstart-guide
JavaScript: https://docs.minio.io/docs/javascript-client-quickstart-guide
.NET: https://docs.minio.io/docs/dotnet-client-quickstart-guide
この状態で http://localhost:9000/ にアクセスすると以下のような画面にアクセスできてファイルの閲覧やダウンロードが出来ます.
※同じネットワークからも見えちゃうので注意.
Minio Client(mc)
Minio Client(mc)というコマンドラインクライアントもあるそうなので試してみます.
#mcというとファイラーと名前が当ってしまいますね. -> Midnight Commander
例によってこの辺を見ると各種環境のものがあります.
$ wget https://dl.minio.io/client/mc/release/linux-amd64/mc
$ wget https://dl.minio.io/client/mc/release/linux-amd64/mc.sha256sum
$ wget https://dl.minio.io/client/mc/release/linux-amd64/mc.asc
$ sha256sum -c mc.sha256sum
sha256sum: mc.RELEASE.2018-02-09T23-07-36Z: そのようなファイルやディレクトリはありません
mc.RELEASE.2018-02-09T23-07-36Z: FAILED open or read
sha256sum: 警告: 一覧にある 1 個のファイルが読み込めませんでした
$ cat mc.sha256sum
7367d2e7e14aea6ef1928c75d5965e7124f8027254007ccf7c51cbd83ed73386 mc.RELEASE.2018-02-09T23-07-36Z
$ sha256sum ./mc
7367d2e7e14aea6ef1928c75d5965e7124f8027254007ccf7c51cbd83ed73386 ./mc
$ gpg --verify ./mc.asc
gpg: 署名されたデータが'./mc'にあると想定します
gpg: 2018年02月10日 08時07分39秒 JSTに施された署名
gpg: RSA鍵12C74390F9AAC728を使用
gpg: "Minio Trusted <trusted@minio.io>"からの正しい署名 [不明の]
gpg: *警告*: この鍵は信用できる署名で証明されていません!
gpg: この署名が所有者のものかどうかの検証手段がありません。
主鍵フィンガープリント: 4405 F3F0 DDBA 1B9E 68A3 1D25 12C7 4390 F9AA C728
$ chmod +x ./mc
mc USAGE
$ ./mc --help
NAME:
mc - Minio Client for cloud storage and filesystems.
USAGE:
mc [FLAGS] COMMAND [COMMAND FLAGS | -h] [ARGUMENTS...]
COMMANDS:
ls List files and folders.
mb Make a bucket or a folder.
cat Display file and object contents.
pipe Redirect STDIN to an object or file or STDOUT.
share Generate URL for sharing.
cp Copy files and objects.
mirror Mirror buckets and folders.
find Search for files and objects.
stat Stat contents of objects and folders.
diff List differences in object name, size, and date between folders.
rm Remove files and objects.
events Manage object notifications.
watch Watch for file and object events.
policy Manage anonymous access to objects.
admin Manage Minio servers
session Manage saved sessions for cp command.
config Manage mc configuration file.
update Check for a new software update.
version Print version info.
GLOBAL FLAGS:
--config-folder value, -C value Path to configuration folder. (default: "/home/mk/.mc")
--quiet, -q Disable progress bar display.
--no-color Disable color theme.
--json Enable JSON formatted output.
--debug Enable debug output.
--insecure Disable SSL certificate verification.
--help, -h Show help.
VERSION:
2018-02-09T23:07:36Z
minioのurl, アクセスキー, シークレットキーを設定します.
$ ./mc config host add myminio http://192.168.2.200:9000 AUI0SRSWF5NOG1JLQNX6 LJ3JI3+VR8aYQR/vCA9QjVkVF4xddkU76Bb1Z
W84
Added `myminio` successfully.
lsしてみます.サブディレクトリは./mc ls s3 myminio/SUBDIR
な感じで.
$ ./mc ls s3 myminio mc: <ERROR> Unable to list folder. The AWS Access Key Id you provided does not exist in our records.
[2015-10-14 19:34:12 JST] 0B ac100-simple-repart/
[2014-03-01 02:29:12 JST] 0B backup/
[2014-04-09 10:49:46 JST] 0B cubox-i/
[2016-03-10 13:04:52 JST] 0B flash-tmp/
[2015-10-14 19:34:48 JST] 0B image/
[2014-05-05 05:53:24 JST] 0B kobo/
[2015-10-14 19:34:26 JST] 0B nakasi-lmy47v/
[2014-02-28 00:14:16 JST] 0B opencocon.org/
[2017-12-09 02:28:42 JST] 0B pinebook/
[2017-03-01 19:49:58 JST] 0B raspifw/
多分しばらく前にサポートされたWinSCPやFileZilla Proでもアクセスできるのではないかと思います.