mc share upload
语法
Themc share upload该命令生成一个临时预签名URL,其中集成了访问凭证,用于将对象上传到MinIO存储桶。该临时URL会在可配置的时间限制后过期。
应用程序可以执行PUT使用 URL 上传对象。
有关可共享对象 URL 的更多信息,请参阅 Amazon S3 文档中的预签名 URL.
以下命令生成一个新的预签名上传 URL,用于mydata桶上的myminioMinIO 部署:
mc share upload --recursive myminio/mydata
该命令具有以下语法:
mc [GLOBALFLAGS] share upload \
[--content-type "string"] \
[--expire "string"] \
[--recursive] \
ALIAS
Brackets
[]表示可选参数。共享同一行的参数是相互依赖的。
使用竖线分隔的参数
|操作符是互斥的。
将示例复制到文本编辑器中,根据需要修改,然后在终端/Shell中运行命令。
参数
- ALIAS
必需The别名MinIO 部署的完整路径以及要为其生成上传 URL 的对象的完整路径。例如:
mc share upload play/mybucket/object.txt
您可以在同一个或不同的 MinIO 部署上指定多个对象。 例如:
mc share upload play/mybucket/object.txt play/mybucket/otherobject.txt
如果指定存储桶或存储桶前缀的路径,您必须同时 指定
--recursiveargument. For example:mc share upload --recursive play/mybucket/ mc share upload --recursive play/mybucket/myprefix/
- --content-type, T
可选限制上传仅限具有特定Content-Typeheader.
指定一个包含所需内容的字符串
Content-Typevalue to accept. 例如,video/mp4.如果已配置,使用生成URL的客户端必须包含
Content-Type指定类型的标头。 MinIO 会拒绝未包含正确Content-Typeheader.内容类型也被称为媒体类型.
- --expire, E
可选设置所有生成URL的过期时间限制。
指定一个格式化的字符串
##h##m##s格式。例如:12h34m56sURL生成后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将文件上传到 MinIO 部署中特定对象位置的请求:
mc share upload --expire DURATION ALIAS/PATH
使用mc share upload随着--recursive和--expire生成临时 URL 的选项
支持POST上传文件到 MinIO 部署中存储桶的请求:
mc share upload --recursive --expire DURATION ALIAS/PATH
该命令返回一个用于将对象上传到指定存储桶前缀的 CURL 命令。
替换
<FILE>在返回的CURL命令中,将字符串替换为要上传文件的路径。替换
<NAME>string in the returned CURL command with the name of the object in the bucket. 这可能包括前缀.
您可以使用 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/to
themybucket前缀下的存储桶photos请遵循您首选脚本语言中关于遍历目录中文件的已文档化最佳实践。
行为
S3 Compatibility
Themc命令行工具专为兼容 AWS S3 API 而构建,并已通过 MinIO 和 AWS S3 测试,确保功能与行为符合预期。
MinIO 不提供对其他 S3 兼容服务的保证,因为它们的 S3 API 实现方式未知,因此不受支持。尽管mc命令可能按文档所述工作,任何此类使用风险自负。