文件

mc pipe

語法

mc pipe 命令會將內容從 STDIN 串流到目標物件。

以下命令將 STDIN 的內容寫入與 S3 相容的儲存空間。

echo "My Meeting Notes" | mc pipe s3/engineering/meeting-notes.txt

該命令具有以下語法

mc [GLOBALFLAGS] pipe                              \
                 TARGET                            \
                 [--attr "string"]                 \
                 [--checksum "string"]             \
                 [--enc-kms "string"]              \
                 [--enc-s3 "string"]               \
                 [--enc-c "string"]                \
                 [--storage-class, --sc "string"]  \
                 [--tags "string"]
  • 括號 [] 表示選用參數。

  • 同一行上的參數是互相依賴的。

  • 使用管線 | 運算子分隔的參數是互斥的。

將範例複製到文字編輯器,並在終端機/殼層中執行命令之前根據需要修改。

變更於版本 RELEASE.2023-01-11T03-14-16Z:mc pipe 現在支援並行上傳,以提升大型串流的吞吐量。

參數

TARGET
必要

執行命令的 別名 或前綴的完整路徑。

--attr
選用

為物件新增自訂中繼資料。

將鍵值對指定為 KEY=VALUE\;,並使用反斜線和分號 (\;) 分隔每一對。例如,--attr key1=value1\;key2=value2\;key3=value3

--checksum
選用

於版本 RELEASE.2024-10-02T08-27-28Z 新增。

為上傳的物件新增校驗和。

有效值為:- MD5 - CRC32 - CRC32C - SHA1 - SHA256

此標誌需要伺服器尾端標頭,並且適用於 AWS 或 MinIO 目標。

--enc-kms

使用客戶管理金鑰,使用伺服器端 SSE-KMS 加密 加密或解密物件。

此參數接受格式為 KEY=VALUE 的鍵值對。

KEY

物件的完整路徑,格式為 alias/bucket/path/object.ext

您可以僅指定頂層路徑,以便對該路徑中的所有操作使用單一加密金鑰。

VALUE

在外部 KMS 上指定現有的資料金鑰。

請參閱 mc admin kms key create 參考資料,以了解如何建立資料金鑰。

例如

--enc-kms "myminio/mybucket/prefix/object.obj=mybucketencryptionkey"

您可以透過重複此參數來指定多個加密金鑰。

指定前綴的路徑,以對該路徑下所有相符的物件套用加密。

--enc-kms "myminio/mybucket/prefix/=mybucketencryptionkey"
--enc-s3
選用

使用 KMS 管理的金鑰,使用伺服器端 SSE-S3 加密 加密或解密物件。將物件的完整路徑指定為 alias/bucket/prefix/object

例如

--enc-s3 "myminio/mybucket/prefix/object.obj"

您可以多次指定此參數,以表示要加密的不同物件。

--enc-s3 "myminio/mybucket/foo/fooobject.obj" --enc-s3 "myminio/mybucket/bar/barobject.obj"

指定前綴的路徑,以對該路徑下所有相符的物件套用加密。

--enc-s3 "myminio/mybucket/foo"
--enc-c
選用

使用客戶管理金鑰,使用伺服器端 SSE-C 加密 加密或解密物件。

此參數接受格式為 KEY=VALUE 的鍵值對。

KEY

物件的完整路徑,格式為 alias/bucket/path/object.ext

您可以僅指定頂層路徑,以便對該路徑中的所有操作使用單一加密金鑰。

VALUE

指定用於 SSE-C 加密的 32 位元組 RawBase64 編碼金鑰 64 位元組十六進位編碼金鑰。

Raw Base64 編碼拒絕 = 填補金鑰。省略填補或使用支援 RAW 格式的 Base64 編碼器。

  • KEY - 物件的完整路徑,格式為 alias/bucket/path/object

  • VALUE - 用於加密物件的 32 位元組 RAW Base64 編碼資料金鑰。

例如

# RawBase64-Encoded string "mybucket32byteencryptionkeyssec"
--enc-c "myminio/mybucket/prefix/object.obj=bXlidWNrZXQzMmJ5dGVlbmNyeXB0aW9ua2V5c3NlYwo"

您可以透過重複此參數來指定多個加密金鑰。

指定前綴的路徑,以對該路徑下所有相符的物件套用加密。

--enc-c "myminio/mybucket/prefix/=bXlidWNrZXQzMmJ5dGVlbmNyeXB0aW9ua2V5c3NlYwo"

注意

MinIO 強烈建議不要在生產工作負載中使用 SSE-C 加密。改為透過 --enc-kms 參數使用 SSE-KMS,或透過 --enc-s3 參數使用 SSE-S3。

--storage-class, --sc
選用

TARGET 設定新物件的儲存類別。

請參閱 Amazon 文件,以取得有關 S3 儲存類別的更多資訊。

--tags
選用

將一個或多個標籤套用至 TARGET。

指定以 & 符號分隔的鍵值對清單,格式為 KEY1=VALUE1&KEY2=VALUE2,其中每一對代表要指派給物件的一個標籤。

全域標誌

此命令支援任何 全域標誌

範例

STDIN 的內容寫入本機檔案系統

以下命令會將 STDIN 的內容寫入本機檔案系統上的 /tmp 資料夾。

mc pipe /tmp/hello-world.go

將 ISO 映像複製到 S3 儲存體

以下命令會先串流 Debian 的 iso 映像內容,然後使用該串流在 S3 路徑建立物件。

cat debian-live-11.5.0-amd64-mate.iso | mc pipe s3/opensource-isos/debian-11-5.iso

將 MySQL 資料庫傾印串流至 S3

以下命令會先串流 MySQL 資料庫,然後使用該串流,透過 mc pipe 在 S3 上建立備份。

mysqldump -u root -p ******* accountsdb | mc pipe s3/sql-backups/backups/accountsdb-sep-28-2022.sql

將檔案寫入精簡冗餘儲存類別

以下命令會取得 STDIN 串流,並在 S3 上的精簡冗餘儲存類別上建立物件。

 mc pipe --storage-class REDUCED_REDUNDANCY s3/personalbuck/meeting-notes.txt

將檔案複製到具有中繼資料的 MinIO 部署

以下命令會將 MP3 檔案上傳到具有 myminio 別名和 music 儲存體的 MinIO 部署。此物件會寫入 Cache-ControlArtist 的一些中繼資料。

cat music.mp3 | mc pipe --attr "Cache-Control=max-age=90000,min-fresh=9000;Artist=Unknown" myminio/music/guitar.mp3

設定上傳物件的標籤

以下命令會在 MinIO 部署上建立物件,其別名為 myminio,儲存體為 mybucket,並具有兩個標籤。MinIO 支援在物件上新增最多 10 個自訂標籤。

tar cvf - . | mc pipe --tags "category=prod&type=backup" myminio/mybucket/backup.tar