中文文档

mc share upload

语法

mc share upload 命令生成一个带有集成访问凭证的临时预 签名的 URL,用于将对象上传到 MinIO 存储桶。这个临时 URL 在一个可配置的时间限制后失效。

应用程序可以通过对 URL 执行 PUT 请求来获取该对象。

有关可共享对象 URL 的更多信息, 请参阅 Amazon S3 文档中关于 Pre-Signed URLs 的部分。

以下命令为 mydata 桶在 myminio MinIO部署中 生成一个新的预签名上传URL:

mc share upload --recursive myminio/mydata

该命令具有以下语法:

mc [GLOBALFLAGS] share upload         \
                 [--expire "string"]  \
                 [--recursive]        \
                 ALIAS
  • 方括号 [] 表示可选参数。

  • 参数在同一行表示它们是相互依赖的。

  • 使用管道 | 运算符分隔的参数是相互排斥的。

在终端/壳中运行命令之前,将示例复制到文本编辑器中并按需进行修改。

参数

ALIAS

必需 MinIO部署的 alias 和要生成上传URL 的对象的完整路径。 例如:

mc share upload play/mybucket/object.txt

您可以指定同一MinIO部署或不同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=ALIAS/<NAME> -F file=@<FILE>

<FILE> 替换为要上传文件的路径。

<NAME> 替换为上传后的文件名。

全局标记

此命令支持任何 全局标志

示例

生成一个上传对象(文件)的URL

使用 mc share upload 命令生成一个支持 POST 请求的URL, 用于将文件上传到MinIO部署上的特定 对象位置:

mc share upload --expire DURATION ALIAS/PATH
  • ALIAS 替换为 MinIO 部署的 alias

  • PATH 替换为 MinIO 部署上对象的路径。

  • DURATION 替换为URL 过期的时间长度。例如,要设置一个30天的过期时间, 请指定 "30d"

使用 mc share upload 命令,附加上 --recursive--expire 选项, 以生成一个支持 POST 请求的临时URL, 用于将文件上传到MinIO部署上的存储桶。

mc share upload --recursive --expire DURATION ALIAS/PATH
  • ALIAS 替换为 MinIO 部署的 alias

  • PATH 替换为 MinIO 部署上存储桶或存储桶前缀的路径。

  • DURATION 替换为URL 过期的时间长度。例如,要设置一个30天的过期时间, 请指定 30d

该命令返回一个 CURL 命令,用于将一个对象上传到指定 的存储桶前缀。

  • 在返回的 CURL 命令中将 <FILE> 字符串替换为要上传 文件的路径。

  • 在返回的 CURL 命令中将 <NAME> 字符串替换为存储 桶中文件的名称。

您可以使用shell脚本循环递归地将文件系统目录的内容 上传到S3兼容的服务:

#!/bin/sh

for file in ~/Documents/photos/
do
   curl https://play.minio.org.cn/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=mydata -F key=mydata/${file} -F file=@${file}

done

请按照您选择的脚本语言的官方文档中推荐的最佳实践 来遍历目录中的文件。

行为

S3兼容性

mc 命令行工具是为了与 AWS S3 API 兼容而构建的,并且已经过测试, 以确保在与 MinIO 和 AWS S3 配合使用时,功能和行为符合预期。

MinIO 不对其他 S3 兼容服务提供任何保证,因为它们的 S3 API 实现是 未知的,因此不受支持。尽管 mc 命令 可能 如文档中所 述工作,但任何此类使用都是您自己的风险。

Join Slack 商业支持购买咨询