mc share upload
語法
mc share upload
命令會產生一個臨時預簽署 URL,其中整合了用於將物件上傳到 MinIO 儲存桶的存取憑證。臨時 URL 會在可設定的時間限制後過期。
應用程式可以使用該 URL 執行 PUT
來上傳物件。
有關可共用物件 URL 的更多資訊,請參閱 Amazon S3 文件中的 預簽署 URL。
以下命令會為 myminio
MinIO 部署上的 mydata
儲存桶產生新的預簽署上傳 URL
mc share upload --recursive myminio/mydata
該命令具有以下語法
mc [GLOBALFLAGS] share upload \
[--expire "string"] \
[--recursive] \
ALIAS
方括號
[]
表示選用參數。同一行的參數是互相依賴的。
使用管道符號
|
分隔的參數是互斥的。
將範例複製到文字編輯器中,並在終端機/shell中執行命令之前,根據需要進行修改。
參數
- ALIAS
必要 MinIO 部署的 別名 以及要產生上傳 URL 的物件完整路徑。例如:
mc share upload play/mybucket/object.txt
您可以在相同或不同的 MinIO 部署上指定多個物件。例如:
mc share upload play/mybucket/object.txt play/mybucket/otherobject.txt
如果指定儲存桶或儲存桶前綴的路徑,您必須同時指定
--recursive
參數。例如:mc share upload --recursive play/mybucket/ mc share upload --recursive play/mybucket/myprefix/
- --expire, E
選用 設定所有產生 URL 的過期時間限制。
指定格式為
##h##m##s
的字串。例如:12h34m56s
表示 URL 產生後 12 小時、34 分鐘和 56 秒到期。預設值為
168h
或 168 小時(7 天)。
- --recursive, r
選用 修改 CURL URL 以支援將物件上傳到儲存桶或儲存桶前綴。如果任何
ALIAS
指定儲存桶或儲存桶前綴的路徑,則為必要參數。修改後的 CURL 輸出類似於以下內容:curl ... -F key=<NAME> -F file=@<FILE>
將
<FILE>
替換為要上傳的檔案路徑。將
<NAME>
替換為上傳後的物件名稱。這可能包含前綴。
全域旗標
此命令支援任何全域旗標。
範例
產生上傳物件的 URL
使用 mc share upload
產生一個支援 POST
請求的 URL,以將檔案上傳到 MinIO 部署上的特定物件位置。
mc share upload --expire DURATION ALIAS/PATH
使用 mc share upload
與 --recursive
和 --expire
選項,以產生一個臨時 URL,該 URL 支援 POST
請求,將檔案上傳到 MinIO 部署上的儲存桶。
mc share upload --recursive --expire DURATION ALIAS/PATH
此命令會傳回一個 CURL 命令,用於將物件上傳到指定的儲存桶前綴。
將傳回的 CURL 命令中的
<FILE>
字串替換為要上傳的檔案路徑。將傳回的 CURL 命令中的
<NAME>
字串替換為儲存桶中物件的名稱。這可能包含前綴。
您可以使用 shell 腳本迴圈,將檔案系統目錄的內容遞迴上傳到與 S3 相容的服務。
#!/bin/sh
for file in ~/Documents/photos/
do
curl https://play.min.io/mybucket/ \
-F policy=AAAAA -F x-amz-algorithm=AWS4-HMAC-SHA256 \
-F x-amz-credential=AAAA/us-east-1/s3/aws4_request \
-F x-amz-date=20200812T202556Z \
-F x-amz-signature=AAAA \
-F bucket=mybucket -F key=photos/${file} -F file=@${file}
done
此範例會將目錄 ~/Documents/photos/
中的每個檔案上傳到 mybucket
儲存桶,並使用前綴 photos
。 請參閱您偏好的腳本語言的最佳實務文件,以了解如何在目錄中迭代檔案。
行為
S3 相容性
mc 命令列工具的建構目的是與 AWS S3 API 相容,並已在 MinIO 和 AWS S3 上測試過,以確保預期的功能和行為。
MinIO 不保證其他與 S3 相容的服務,因為它們的 S3 API 實作是未知的,因此不受支援。雖然 mc 命令可能會按照文件說明運作,但任何此類使用都由您自行承擔風險。
