mc harus berperilaku secara konsisten untuk pengujian sehingga outputnya dapat diuraikan dan log informatif tidak boleh di stdout tetapi stderr
Saat pertama kali dijalankan di tty, mc membuang versi ini ke stdout sebelum output yang tepat dari perintahnya, bahkan dengan --json
dan --quiet
. Ini mempersulit pengujian skrip yang dapat direproduksi yang mengharapkan keluaran terstruktur.
mc: Configuration written to `/root/.mc/config.json`. Please update your access credentials.
mc: Successfully created `/root/.mc/share`.
mc: Initialized share uploads `/root/.mc/share/uploads.json` file.
mc: Initialized share downloads `/root/.mc/share/downloads.json` file.
Contoh komposisi buruh pelabuhan
version: "2"
services:
minio:
image: minio/minio
environment:
MINIO_ACCESS_KEY: docker
MINIO_SECRET_KEY: inconsistent
command: server /data
mc:
image: minio/mc
environment:
MC_HOST_app: http://docker:inconsistent<strong i="15">@minio</strong>:9000
depends_on:
- minio
command: admin --json user list app
docker-compose up
: mc keluar secara normal seperti yang diharapkan, tanpa keluaran apa pun
docker-compose run --rm -T mc
: mc keluar secara normal seperti yang diharapkan, tanpa keluaran apa pun karena tidak ada TTY
docker-compose run --rm mc
: mc membuang pesan di atas ke stdout
Saya menemukan ini terjadi di
mc version RELEASE.2020-11-17T00-39-14Z
dan
mc version RELEASE.2020-10-03T02-54-56Z
Saya telah mengkonfirmasi ini terjadi di lingkungan Docker di WSL2, macOS, dan Linux.
~ tree /tmp/garbage1/
/tmp/garbage1/ [error opening dir]
0 directories, 0 files
~ mc --config-dir /tmp/garbage1 --json ls /tmp/2
{
"status": "success",
"type": "folder",
"lastModified": "2020-11-17T23:26:17.202902722-08:00",
"size": 4096,
"key": ".minio.sys/",
"etag": "",
"url": "/tmp/2/",
"versionOrdinal": 1
}
{
"status": "success",
"type": "folder",
"lastModified": "2020-11-17T14:52:11.063079105-08:00",
"size": 4096,
"key": "testbucket/",
"etag": "",
"url": "/tmp/2/",
"versionOrdinal": 1
}
~ tree /tmp/garbage1/
/tmp/garbage1/
├── certs
│ └── CAs
├── config.json
├── session
└── share
├── downloads.json
└── uploads.json
Sepertinya bukan @kevinlul ?
Apakah ini lingkungan yang segar? Jika file sudah ada di ~/.mc
maka saya tidak mengharapkan pesan itu muncul.
Apakah ini lingkungan yang segar? Jika file sudah ada di
~/.mc
maka saya tidak mengharapkan pesan itu muncul.
Iya @kevinlul
~ mv ~/.mc ~/.mc.old
~ mc --config-dir /tmp/garbage1 --json ls /tmp/2
{
"status": "success",
"type": "folder",
"lastModified": "2020-11-17T23:26:17.202902722-08:00",
"size": 4096,
"key": ".minio.sys/",
"etag": "",
"url": "/tmp/2/",
"versionOrdinal": 1
}
{
"status": "success",
"type": "folder",
"lastModified": "2020-11-17T14:52:11.063079105-08:00",
"size": 4096,
"key": "testbucket/",
"etag": "",
"url": "/tmp/2/",
"versionOrdinal": 1
}
~ tree ~/.mc
/home/harsha/.mc [error opening dir]
0 directories, 0 files
Sesuai kode itu tidak boleh dicetak
if !globalQuiet && !globalJSON {
console.Infoln("Configuration written to `" + mustGetMcConfigPath() + "`. Please update your access credentials.")
}
Apakah Anda yakin wadah Anda telah menarik mc
?
Saya harus mengklarifikasi bahwa saya menjalankan ini terhadap MinIO secara khusus dan bukan sistem file lokal. Ketika saya menjalankan perintah Anda, yang berhubungan dengan sistem file lokal, hasilnya baik-baik saja. Namun, jika saya mencobanya terhadap sebuah cluster maka saya mendapatkan output pesan. Sepertinya posisi flag --json
juga penting. Contoh yang dijalankan pertama di bawah ini:
/ # mc admin --json user list app
mc: Configuration written to `/root/.mc/config.json`. Please update your access credentials.
mc: Successfully created `/root/.mc/share`.
mc: Initialized share uploads `/root/.mc/share/uploads.json` file.
mc: Initialized share downloads `/root/.mc/share/downloads.json` file.
/ # mc ls --json app
mc: Configuration written to `/root/.mc/config.json`. Please update your access credentials.
mc: Successfully created `/root/.mc/share`.
mc: Initialized share uploads `/root/.mc/share/uploads.json` file.
mc: Initialized share downloads `/root/.mc/share/downloads.json` file.
/ # mc ls --json /tmp
mc: Configuration written to `/root/.mc/config.json`. Please update your access credentials.
mc: Successfully created `/root/.mc/share`.
mc: Initialized share uploads `/root/.mc/share/uploads.json` file.
mc: Initialized share downloads `/root/.mc/share/downloads.json` file.
/ # mc --json ls /tmp
/ # mc --json ls app
/ # mc ls --json app
/ # mc admin --json user list app
@kevinlul ya posisi penting dan kami tidak bisa berbuat banyak - ini adalah Batasan penguraian bendera Go.
Saya harus mengklarifikasi bahwa saya menjalankan ini terhadap MinIO secara khusus dan bukan sistem file lokal. Ketika saya menjalankan perintah Anda, yang berhubungan dengan sistem file lokal, hasilnya baik-baik saja. Namun, jika saya mencobanya terhadap sebuah cluster maka saya mendapatkan output pesan. Sepertinya posisi flag
--json
juga penting. Contoh yang dijalankan pertama di bawah ini:
Tidak masalah mc
pembuatan konfigurasi tidak ada hubungannya dengan tempat Anda berbicara.
Jadi berikan bendera di awal dan kami tidak akan menampilkan pesan itu saja @kevinlul
Jika ini adalah perilaku yang dimaksudkan maka mungkin ini adalah topik yang lebih baik untuk dokumentasi? Saya mengetahui tanda tersebut dari klien admin docs , bagian 6, dan saya benar-benar tidak mengharapkan ini sama sekali. Dalam dua cara itu digunakan di bagian dokumen itu, --json
muncul setelah subperintah mc admin
di dua tempat berbeda, yang menunjukkan kepada pembaca bahwa itu tidak masalah.
Jika ini adalah perilaku yang dimaksudkan maka mungkin ini adalah topik yang lebih baik untuk dokumentasi? Saya mengetahui tanda tersebut dari klien admin docs , bagian 6, dan saya benar-benar tidak mengharapkan ini sama sekali. Dalam dua cara itu digunakan di bagian dokumen itu,
--json
muncul setelah subperintahmc admin
di dua tempat berbeda, yang menunjukkan kepada pembaca bahwa itu tidak masalah.
Bukan niat saya TBH, ini adalah masalah mendasar dari posisi parser Go yang penting untuk perilaku. Jadi gunakan cara yang baru saja saya tunjukkan, dokumentasi dapat mengikuti nanti.
Baik. Jika masalah posisi parser Go tidak dapat diatasi, saya sarankan mengirim pesan diagnostik ke stderr jika memungkinkan untuk menghindari output reguler yang mengganggu. Saya akan ingat untuk menempatkan flag --json
terlebih dahulu.
Masalah ini secara otomatis ditandai sebagai basi karena tidak ada aktivitas terbaru. Ini akan ditutup setelah 21 hari jika tidak ada aktivitas lebih lanjut. Terima kasih atas kontribusi Anda.
Apakah rencana masih memperbarui dokumen untuk masalah ini?