TOC
クラウド運用と同じ環境でローカル環境を作りたい→宅内オブジェクトストレージがあった方が良い
現在、我が家では24時間稼働しているコンピューターとしてRaspberry Pi 4B(RAM8GB)がありますが、他にもNAS(ReadyNAS RN104)が24時間稼働しています。どちらも大絶賛稼働しています。
Raspberry Pi 4にインストールされているUbuntu 20.10をUbuntu 21.04にアップグレードする(APT::Default-Releaseはハマる)
SyncthingとReadyNASで無理矢理構築したオレオレBucketでScoopを使ったWindowsの開発環境整備
で、家庭内でやりたい大抵のサーバーはRaspberry Pi 4と1TB HDDを接続して実現できています1が、クラウド環境での外部ストレージとして使うことがよくあるAmazon AWS S3に代表されるオブジェクトストレージの利用はRaspberry Pi 4だけでは賄うことができず、宅内の運用でなんとかできないかなと考えて試した結果がこの記事になります。
一般的に、システムはこのようになっていることが多いのですが、
LAN内で開発する場合はS3をMinIOに置き換えるための手法を探る(かつ、NASでMinIOを使おう)というのがこの記事の目的です。
前々から知ってはいたのですが、複数HDDトレイの値段が相対的に安いNASとして購入したNETGEARのReadyNASはDebianで動作しており、保証が必要なければSSHでログインして好きなようにできるという自由度を提供しています。
いつの間にかシリーズ自体が終売しているKURO-BOX・KURO-NASシリーズなき今、偶然選んだNASが大容量常時稼働PCとして使えるのではないかと思って調査から試運転、実践の記録ですが、先に記載した通りこの記事の内容は無保証です。更に、RN104もすでにサポートが終了しており、後述しますが使っているDebianも8(Jessie)なので輪をかけて全てに於いて非推奨です。
諸々の諸元
ではここで今回MinIOをインストールしてオブジェクトストレージとして活躍してもらう機材のご紹介です。
項目名 | 内容 | 備考 |
---|---|---|
ReadyNAS 104 RN10400 | サポート終了(最終ファームウェア6.10.5) | |
HDDベイの数 | 3.5インチ/2.5インチ × 4 | 10TB HDDと6TB HDDを装着(RAIDなし) |
CPU | Marvell Armada 370/XP (Device Tree) | |
RAM | 512MB | |
LAN | GbE × 2ポート | 1ポートのみ使用 |
OS | Debian GNU/Linux 8.11(Jessie) | 2020/06/30 EOL |
組み込みとしては優秀な方(電源がそれなりにしっかりしていることが想定されることと最初から24時間稼働が前提、LANが2ポートあるのでどちらか壊れても簡単に復旧可能)な感じかと思います。
ReadyNASをDebianとして使う
SSHの有効化
これで保証が切れます。
諸々の確認
sshでログインできるようになったので、諸々を確認していきます。rootユーザーのパスワードはNASのadminユーザーのパスワードです。
$ ssh root@192.168.1.126
(snip)
root@192.168.1.126's password:
Welcome to ReadyNASOS 6.10.5
ということで、ReadyNASとしてのOSのバージョンは6.10.5(ファームウェアのバージョンと同じ)です。
# cat /etc/debian_version
8.11
# cat /etc/issue
ReadyNASOS 6.10.5 \n \l
パッケージは更新しませんが、aptが使えるはずなので試してみます。
# apt-get update
Err:1 http://security.debian.org jessie/updates InRelease
Could not resolve 'security.debian.org'
Err:2 http://mirrors.kernel.org/debian jessie InRelease
Could not resolve 'mirrors.kernel.org'
Err:3 https://apt.readynas.com/packages/readynasos 6.10.5 InRelease
Could not resolve host: apt.readynas.com
Reading package lists... Done
W: Failed to fetch https://apt.readynas.com/packages/readynasos/dists/6.10.5/InRelease Could not resolve host: apt.readynas.com
W: Failed to fetch http://mirrors.kernel.org/debian/dists/jessie/InRelease Could not resolve 'mirrors.kernel.org'
W: Failed to fetch http://security.debian.org/dists/jessie/updates/InRelease Could not resolve 'security.debian.org'
W: Some index files failed to download. They have been ignored, or old ones used instead.
DNSの解決に失敗しているようで、そういえばIPアドレス固定でルーターに振るようにしていたことを思い出して/etc/resolv.conf
にDNSサーバー(ルーターのIPアドレス)を記載します。
# vi /etc/resolv.conf
nameserver 192.168.1.1
今度はaptも通るようになったので、screenfetch
をインストールします。2
# apt-get update
# apt-get install screenfetch
# screenfetch
_,met$$$$$gg. root@nas-zz-zz-zz
,g$$$$$$$$$$$$$$$P. OS: Debian
,g$$P"" """Y$$.". Kernel: armv7l Linux 4.4.218.armada.1
,$$P' `$$$. Uptime: 114d 2h 36m
',$$P ,ggs. `$$b: Packages: 391
`d$$' ,$P"' . $$$ Shell: 19992
$$P d$' , $$P CPU: ARMv7 rev 1 (v7l)
$$: $$. - ,d$$' RAM: 140MB / 496MB
$$\; Y$b._ _,d$P'
Y$$. `.`"Y$$$$P"'
`$$b "-.__
`Y$$
`Y$$.
`$$b.
`Y$$b.
`"Y$b._
`""""
マウントポイントについては、ドライブ単位のマウントポイントがbtrfs(NAS上でbtrfsでフォーマットしたため)と、恐らくFTPを有効にしていることから/var/ftp/以下に定義されています。
# mount
(snip)
/dev/md126 on /TOSHIBA type btrfs (rw,noatime,nodiratime,nodatasum,nospace_cache,subvolid=5,subvol=/)
/dev/md127 on /RED10 type btrfs (rw,noatime,nodiratime,nodatasum,nospace_cache,subvolid=5,subvol=/)
/dev/md126 on /home type btrfs (rw,noatime,nodiratime,nodatasum,nospace_cache,subvolid=260,subvol=/home)
/dev/md126 on /apps type btrfs (rw,noatime,nodiratime,nodatasum,nospace_cache,subvolid=259,subvol=/.apps)
/dev/md126 on /var/ftp/CopyFromBackup type btrfs (rw,noatime,nodiratime,nodatasum,nospace_cache,subvolid=263,subvol=/CopyFromBackup)
/dev/md127 on /var/ftp/data_root type btrfs (rw,noatime,nodiratime,nodatasum,nospace_cache,subvolid=260,subvol=/data_root)
/dev/md126 on /var/ftp/databk type btrfs (rw,noatime,nodiratime,nodatasum,nospace_cache,subvolid=4128,subvol=/databk)
/dev/md127 on /var/ftp/Scoop type btrfs (rw,noatime,nodiratime,nodatasum,nospace_cache,subvolid=3631,subvol=/Scoop)
/dev/md126 on /run/nfs4/home type btrfs (rw,noatime,nodiratime,nodatasum,nospace_cache,subvolid=260,subvol=/home)
また、OS領域は4GB弱のストレージがあるようです。
# df -h
Filesystem Size Used Avail Use% Mounted on
udev 10M 4.0K 10M 1% /dev
/dev/md0 3.7G 725M 2.8G 21% /
tmpfs 249M 0 249M 0% /dev/shm
tmpfs 249M 400K 248M 1% /run
tmpfs 125M 1.8M 123M 2% /run/lock
tmpfs 249M 0 249M 0% /sys/fs/cgroup
/dev/md126 5.5T 5.5T 64K 100% /TOSHIBA
/dev/md127 9.1T 6.6T 2.6T 72% /RED10
/dev/md126 5.5T 5.5T 64K 100% /home
/dev/md126 5.5T 5.5T 64K 100% /apps
/dev/md126 5.5T 5.5T 64K 100% /var/ftp/CopyFromBackup
/dev/md127 9.1T 6.6T 2.6T 72% /var/ftp/data_root
/dev/md126 5.5T 5.5T 64K 100% /var/ftp/databk
/dev/md127 9.1T 6.6T 2.6T 72% /var/ftp/Scoop
その他の仕様についてはこんな感じです。
# uname -a
Linux nas-E6-03-60 4.4.218.armada.1 #1 SMP Mon Jan 11 06:38:27 UTC 2021 armv7l GNU/Linux
# cat /proc/cpuinfo
processor : 0
model name : ARMv7 Processor rev 1 (v7l)
BogoMIPS : 34.37
Features : half thumb fastmult vfp edsp vfpv3 vfpv3d16 tls idivt
CPU implementer : 0x56
CPU architecture: 7
CPU variant : 0x1
CPU part : 0x581
CPU revision : 1
Hardware : Marvell Armada 370/XP (Device Tree)
Revision : 0000
Serial : 0000000000000000
ユーザー管理のクセがすごい
SSHでログインできるようになったReadyNAS、使えるユーザーについてLinuxなので当然rootユーザーは使えますが、NAS上の管理ユーザーであるadminもいます。
# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
(snip)
admin:x:98:98::/home/admin:/bin/false
(snip)
他にもsshdユーザーやwww-dataユーザーといったそれぞれのdaemon単位でユーザーがいますが、(NAS管理と整合性を持たせようとした場合)SSH上の作業ユーザーをどうするかというのは結構面倒な問題を孕んでいます。
私の場合、NAS上のユーザーをadminで兼ねているため(管理を手抜きするため…)、NAS上のディレクトリも当然adminユーザーがowner/groupになっていますが、su - admin
でadminになってもログインシェルが/bin/false
になっているのでadminユーザーには切り替わりません。
# id
uid=0(root) gid=0(root) groups=0(root)
# su - admin
# id
uid=0(root) gid=0(root) groups=0(root)
adminユーザーの所属グループはadmin sudo shadowになっています。
# groups admin
admin : admin sudo shadow
# getent group admin
admin:x:98:
# getent group sudo
sudo:x:27:admin
# getent group shadow
shadow:x:42:admin
かといってrootユーザーで操作したファイルがadminユーザーで操作できないのかといえばそうではなく、ACLで制御されているようです。
# # NASで管理しているディレクトリ上で実行
# getfacl .
# file: .
# owner: admin
# group: admin
user::rwx
user:admin:rwx
user:guest:rwx
group::rwx
group:admin:rwx
group:guest:rwx
mask::rwx
other::rwx
default:user::rwx
default:user:admin:rwx
default:user:guest:rwx
default:group::rwx
default:group:admin:rwx
default:group:guest:rwx
default:mask::rwx
default:other::rwx
なんとももやもやする状態ですが、ユーザーを切り替えずに他のユーザーとして作業するためにsudo -u 操作することにしたいユーザー名
を実行コマンドの先頭に付与して作業するかファイル操作の後にchown/chgroupで書き換える必要があります。但し、ReadyNASは標準でsudoコマンドがインストールされていないので、別途aptでインストールする必要があります。
MinIOのセットアップ
S3互換のオブジェクトストレージのオープンソース実装であるMinIOですが、ARM用のバイナリはUbuntu/Debian用のパッケージによる配布がされていない(amd64用はdebパッケージが配布されています)ため、バイナリを任意のディレクトリに配置して実行する形を取ります。
MinIOのダウンロード
まず、バイナリを/opt/minio
にダウンロードして実行してみます。念の為、ファイルが正しいものかどうかを簡易的に確認します。(sha1sumコマンドのハッシュ値は2021/10/13版のものが表示されます。リリース間隔がかなり短いので作業日で変わります)
# mkdir /opt/minio
# cd /opt/minio
# wget https://dl.min.io/server/minio/release/linux-arm/minio
# wget https://dl.min.io/server/minio/release/linux-arm/minio.shasum
# sha1sum minio
7f0fdda666c7447f692faceda18f2ff5d04977c0 minio
# cat minio.shasum
7f0fdda666c7447f692faceda18f2ff5d04977c0 minio.RELEASE.2021-10-13T00-23-17Z
# rm minio.shasum
sha1ハッシュが一致したので、ファイル自体は改竄されていないと考えて良いと思います(HTTPSでダウンロードしたので)
慣れないarmバイナリなので本当に実行できそうか、ファイル自体を確かめますが…
# file minio
-bash: file: command not found
fileコマンドがないという初めての事象に遭遇w
# apt-get install file
# file minio
minio: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), statically linked, stripped
ということで、スタティックリンクされてデバッグシンボルもstripされてなくなっているバイナリということが確認できます。
# chmod +x minio
# ./minio --version
minio version RELEASE.2021-10-13T00-23-17Z
バイナリはそのまま実行できそうです。ほっと一安心。
試しに実行
~/miniobucket
というバケットのディレクトリを作成して、とりあえず起動します。
# mkdir ~/miniobucket
# ./minio server ~/miniobucket
API: http://192.168.1.126:9000 http://127.0.0.1:9000
RootUser: minioadmin
RootPass: minioadmin
Console: http://192.168.1.126:32865 http://127.0.0.1:32865
RootUser: minioadmin
RootPass: minioadmin
Command-line: https://docs.min.io/docs/minio-client-quickstart-guide
$ mc alias set myminio http://192.168.1.126:9000 minioadmin minioadmin
Documentation: https://docs.min.io
WARNING: Console endpoint is listening on a dynamic port (32865), please use --console-address ":PORT" to choose a static port.
WARNING: Detected default credentials 'minioadmin:minioadmin', we recommend that you change these values with 'MINIO_ROOT_USER' and 'MINIO_ROOT_PASSWORD' environment variables
WARNINGとして2つ出力されています。
- bindするポートが動的取得で32865番ポートを使っているので、–console-addressを使って静的なポートを指定してくれ
- デフォルト認証情報としてminioadmin:minioadminが使われるので、環境変数
MINIO_ROOT_USER
とMINIO_ROOT_PASSWORD
を指定して実行してくれ
まずはこのままブラウザからAPIになっている http://192.168.1.126:9000 につないでみます。
ユーザー名とパスワードにどちらもminioadminを入力してログインすると、管理画面が表示されます。
まだファイルを置いていないので管理対象も何もありません。
左のメニューからBucketsを選択し、右上のCreate Bucketをクリックして必要な情報を入力するとバケットを作成できるようです。
MinIOクライアントから接続
S3互換のオブジェクトストレージであるMinIOですが、オフィシャルクライアントが公開されています。
こちらもMinIOのサーバーと同様、ARMのDebian/Ubuntu用のパッケージでは公開されていませんが、amd64用はdebパッケージが公開されているので、これをダウンロードしてインストールすることにします。
ちなみに、バイナリとして公開されているMinIOクライアントはファイル名がmc
でMidnight Commanderと名称が被るので管理が難しいですが、debパッケージはファイル名がmcli
になっているので、コマンド名自体が異なります。
クライアントをARMにインストールする場合はコマンドが全てmcに変わります。
$ wget https://dl.minio.io/client/mc/release/linux-amd64/mcli_20211007041958.0.0_amd64.deb
$ sudo dpkg -i mcli_20211007041958.0.0_amd64.deb
$ which mcli
/usr/local/bin/mcli
mcli
$ mcli --version
mcli version RELEASE.2021-10-07T04-19-58Z
とりあえず対話式でクライアントから認証情報を設定してみます。
$ mcli alias set minio http://192.168.1.126:9000 --api S3v4
mcli: Configuration written to `/home/hogehoge/.mcli/config.json`. Please update your access credentials.
mcli: Successfully created `/home/hogehoge/.mcli/share`.
mcli: Initialized share uploads `/home/hogehoge/.mcli/share/uploads.json` file.
mcli: Initialized share downloads `/home/hogehoge/.mcli/share/downloads.json` file.
Enter Access Key: minioadmin
Enter Secret Key:
Added `minio` successfully.
バケットを確認します。まだ作成していない状態です。
$ mcli ls minio
何も表示されません。作成してみます。ちなみに、iMinIOのサーバーとクライアントで時刻がずれすぎているとmcli: <ERROR> Unable to list folder. The difference between the request time and the server's time is too large.
とエラーが表示されます。
$ mcli mb minio/firstbucket
Bucket created successfully `minio/firstbucket`.
作成された表示があるので、確認してみます。
$ mcli ls minio
[2021-10-18 20:39:38 JST] 0B firstbucket/
適当なファイルを作ってコピーしてみます。
$ echo test > testfile.txt
$ mcli cp testfile.txt minio/firstbucket
testfile.txt: 5 B / 5 B ┃▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓┃ 13 B/s 0s
$ mcli ls minio/firstbucket
[2021-10-18 20:41:35 JST] 5B testfile.txt
この状態になると、ブラウザ上でもバケットが作られて使われていることがわかります。
コマンド体系はサーバー設定以外はrcpと似たものになっています。ReadyNASで起動しっぱなしにしているMinIOコマンドはCtrl+cで終了します。
バケットの場所をNAS機能から参照できるようにする
前述のように、ReadyNASでNASとして使う場合と普通にDebianで使う場合は使い方が異なるので、NASでアップロードしたファイルをオブジェクトストレージとしても使えるようにした方が利便性は高いのかなという気がしています。
ということで、使用する設定値を以下のようにします。
項目名 | 設定値 |
---|---|
NAS上のユーザー | admin |
MinIOのバケットを作るNAS上のHDD | RED10 |
MinIOのバケットを作るNAS上のボリューム | NASMINIO |
MinIOのバケットを作成するディレクトリのフルパス | /RED10/NASMINIO/minio1 |
MinIOの実行ファイルのパス(前述の通り) | /opt/minio/minio |
MinIOの作業ディレクトリ | /opt/minio/ |
MinIOのユーザー名 | minio1 |
MinIOのパスワード(説明用) | minpass1 |
MinIOのAPI待受ポート番号 | 9199 |
これに沿ってReadyNASで新しい共有を作ります。共有はデフォルトでチェックが付いているSMBにFTPを追加した形。クオータは設定しませんが最大でも1TBを見込んでいます。
前述したように、NASのadminユーザー(NAS管理のボリュームにおいてはownerとgroupを行っているユーザーだが実質rootと同じような権限がありそう)で操作するのが最も不整合を回避できそうなので、ファイルのowner・groupはadminになるように寄せていきます。
既に実行ファイルを配置している/opt/minio
のownerとgroupをadminに変更します。
# chown -R admin:admin /opt/minio/
また、バケットのディレクトリはWeb画面やFTPクライアントから作ってしまいます。(コマンドで作成する場合は上記と同様chownでownerとgroupをadminに変更します)
# ls -ld /RED10/NASMINIO/minio1
drwxrwxrwx+ 1 admin admin 0 Oct 18 23:07 /RED10/NASMINIO/minio1
Systemdでの管理
JessieはSystemdに対応していたという超絶ラッキーにより、OS起動時のdaemon管理をSystemdに任せます。
設定ファイルの作成
/etc/default/minio
というファイルを以下の内容で作成します。
# Volume to be used for MinIO server.
MINIO_VOLUMES="/RED10/NASMINIO/minio1/"
# Use if you want to run MinIO on a custom port.
MINIO_OPTS="--address :9199"
# Root user for the server.
MINIO_ROOT_USER=minio1
# Root secret for the server.
MINIO_ROOT_PASSWORD=minpass1
/etc/systemd/system/minio.service
というファイルを以下の内容で作成します。
[Unit]
Description=MinIO
Documentation=https://docs.min.io
Wants=network-online.target
After=network-online.target
AssertFileIsExecutable=/opt/minio/minio
[Service]
WorkingDirectory=/opt/minio/
User=admin
Group=admin
ProtectProc=invisible
EnvironmentFile=/etc/default/minio
ExecStartPre=/bin/bash -c "if [ -z \"${MINIO_VOLUMES}\" ]; then echo \"Variable MINIO_VOLUMES not set in /etc/default/minio\"; exit 1; fi"
ExecStart=/opt/minio/minio server $MINIO_OPTS $MINIO_VOLUMES
# Let systemd restart this service always
Restart=always
# Specifies the maximum file descriptor number that can be opened by this process
LimitNOFILE=65536
# Specifies the maximum number of threads this process can create
TasksMax=infinity
# Disable timeout logic and wait until process is stopped
TimeoutStopSec=infinity
SendSIGKILL=no
[Install]
WantedBy=multi-user.target
# Built for ${project.name}-${project.version} (${project.name})
実行・起動設定
systemdに反映します。
# systemctl daemon-reload
# systemctl status minio
● minio.service - MinIO
Loaded: loaded (/etc/systemd/system/minio.service; disabled; vendor preset: enabled)
Active: active (running) since Mon 2021-10-18 23:30:41 JST; 11s ago
Docs: https://docs.min.io
Process: 5400 ExecStartPre=/bin/bash -c if [ -z "${MINIO_VOLUMES}" ]; then echo "Variable MINIO_VOLUMES not
set in /etc/default/minio"; exit 1; fi (code=exited, status=0/SUCCESS)
Main PID: 5404 (minio)
CGroup: /system.slice/minio.service
└─5404 /opt/minio/minio server --address :9199 /RED10/NASMINIO/minio1/
Oct 18 23:30:41 nas-zz-zz-zz systemd[1]: Starting MinIO...
Oct 18 23:30:41 nas-zz-zz-zz systemd[1]: Started MinIO.
Oct 18 23:30:44 nas-zz-zz-zz minio[5404]: API: http://192.168.1.126:9199 http://127.0.0.1:9199
Oct 18 23:30:44 nas-zz-zz-zz minio[5404]: Console: http://192.168.1.126:40644 http://127.0.0.1:40644
Oct 18 23:30:44 nas-zz-zz-zz minio[5404]: Documentation: https://docs.min.io
Oct 18 23:30:44 nas-zz-zz-zz minio[5404]: WARNING: Console endpoint is listening on a dynamic port (40644), pl
ease use --console-address ":PORT" to choose a static port.
大丈夫そうなので、OS起動時に実行するようにします。
# systemctl enable minio.service
Created symlink /etc/systemd/system/multi-user.target.wants/minio.service → /etc/systemd/system/minio.service.
NASを再起動します。再起動後にstatusをもう一度確認します。
# systemctl status minio
● minio.service - MinIO
Loaded: loaded (/etc/systemd/system/minio.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2021-10-18 23:44:39 JST; 2min 57s ago
Docs: https://docs.min.io
Main PID: 2242 (minio)
CGroup: /system.slice/minio.service
└─2242 /opt/minio/minio server --address :9199 /RED10/NASMINIO/minio1/
Oct 18 23:44:37 nas-zz-zz-zz systemd[1]: Starting MinIO...
Oct 18 23:44:39 nas-zz-zz-zz systemd[1]: Started MinIO.
Oct 18 23:44:50 nas-zz-zz-zz minio[2242]: API: http://192.168.1.126:9199 http://127.0.0.1:9199
Oct 18 23:44:50 nas-zz-zz-zz minio[2242]: Console: http://192.168.1.126:32958 http://127.0.0.1:32958
Oct 18 23:44:50 nas-zz-zz-zz minio[2242]: Documentation: https://docs.min.io
Oct 18 23:44:50 nas-zz-zz-zz minio[2242]: WARNING: Console endpoint is listening on a dynamic port (32958), pl
ease use --console-address ":PORT" to choose a static port.
Oct 18 23:45:28 nas-zz-zz-zz systemd[1]: [/etc/systemd/system/minio.service:13] Unknown lvalue 'Protec
tProc' in section 'Service'
Oct 18 23:45:30 nas-zz-zz-zz systemd[1]: [/etc/systemd/system/minio.service:13] Unknown lvalue 'Protec
tProc' in section 'Service'
最後の2行がどうにも気持ち悪いですが、手元で動かしてる限りは影響なさそうなので放置で…
改めてクライアントから接続確認
$ mcli alias set nasminio http://192.168.1.126:9199 --api S3v4
mcli: Configuration written to `/home/hogehoge/.mcli/config.json`. Please update your access credentials.
mcli: Successfully created `/home/hogehoge/.mcli/share`.
mcli: Initialized share uploads `/home/hogehoge/.mcli/share/uploads.json` file.
mcli: Initialized share downloads `/home/hogehoge/.mcli/share/downloads.json` file.
Enter Access Key: minio1
Enter Secret Key:
Added `nasminio` successfully.
$ mcli ls nasminio
$ mcli mb nasminio/firstbucket
Bucket created successfully `nasminio/firstbucket`.
$ mcli ls nasminio
[2021-10-19 00:03:02 JST] 0B firstbucket/
$ echo nastest > nastest.txt
$ mcli cp nastest.txt nasminio/firstbucket
nastest.txt: 8 B / 8 B ┃▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓┃ 158 B/s 0s
$ mcli ls nasminio/firstbucket
[2021-10-19 00:04:32 JST] 8B nastest.txt
NASのブラウザからもアップロードしたファイルを確認できました。
また、FTP等のNAS機能でバケットへアップロードしたファイルもMinIOバケットとして管理されるようなので、好きな方法でファイルを入れることができます。
スポンサーリンク
comments powered by Disqus