文档基于2025-10-10日社区最终版构建     
切换到英文版    进入演示系统    进入交流社区

MinIO Documentation

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
  • 替换ALIAS随着别名MinIO 部署的。

  • 替换PATH对象在 MinIO 部署中的路径。

  • 替换DURATIONURL 过期前的持续时间。例如,要设置 30 天的过期时间, 请指定30d.

使用mc share upload随着--recursive--expire生成临时 URL 的选项 支持POST上传文件到 MinIO 部署中存储桶的请求:

mc share upload --recursive --expire DURATION ALIAS/PATH
  • 替换ALIAS随着别名MinIO 部署的。

  • 替换PATH指向 MinIO 部署中的存储桶或存储桶前缀的路径。

  • 替换DURATIONURL 过期前的持续时间。例如,要设置 30 天的过期时间, 请指定30d.

该命令返回一个用于将对象上传到指定存储桶前缀的 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命令可能按文档所述工作,任何此类使用风险自负。