【问题标题】:Minio: How to make folders and files already in mount point available when starting minio server?Minio:启动 minio 服务器时,如何使挂载点中的文件夹和文件可用?
【发布时间】:2019-04-03 13:38:36
【问题描述】:

我正在使用其 docker 映像运行 Minio 服务器。

docker run -p 9000:9000 --name minio1 \
  -e "MINIO_ACCESS_KEY=user" \
  -e "MINIO_SECRET_KEY=pass" \
  -v /home/me/data:/data \
  minio/minio server /data

我在挂载点有几个文件夹,其中包含文件。如何让它们在 Minio 中可用,我需要上传它们吗?

我可以将它们放在一个文件夹中,然后在我初始化服务器时将其添加为存储桶吗?

编辑:

当我在localhost:9000 上打开 minio 网络用户界面时,我看不到已经在挂载点的文件和文件夹。

将所有这些文件夹添加到 minio 服务器的最有效方法是什么,例如为树中的第一个文件夹创建一个存储桶,然后将每个文件夹中的所有文件作为对象添加到它们的“文件夹”存储桶中?我可以使用 Minio Python SDK 来实现这一点,例如,通过递归地遍历文件夹树并上传文件,但这有必要吗?

【问题讨论】:

  • 无论您在 /home/me/data 中本地拥有什么,都将在 /data 中的容器内可用。我这不是你要问的吗?否则,您能否详细说明您想要实现的目标?
  • 我知道这些文件将在 docker 容器中可用,并且我也可以看到我上传到 minio 的文件,因为它们是在那里创建的。但是我在 minio(web ui,api)中看不到初始化服务器时已经在安装点的文件夹。我试图通过编辑来澄清。谢谢
  • 如果您将文件夹映射到不同的文件夹(除了 /data -> 可以说 /data-new),然后在最后一部分更改(服务器 /data ->服务器/数据新)。不幸的是,当我尝试下载文件时出现错误。但也许你可以解决这个问题;)

标签: docker amazon-s3 minio


【解决方案1】:

对于它的价值,您似乎必须使用 minio 命令行客户端来完成此操作:维护人员明确拒绝在 Minio 内部添加一个选项来执行此操作(请参阅https://github.com/minio/minio/issues/4769)。我看到的最简单的选择基本上是做这样的事情:

docker run -p 9000:9000 --name minio1 -e "MINIO_ACCESS_KEY=user" \ 
-e "MINIO_SECRET_KEY=pass" -v /home/me/data:/data \
minio/minio server /data && docker exec -d minio1 \
"/bin/bash /usr/bin/mc config host add srv http://localhost:9000 \
user pass && /usr/bin/mc mb -p srv/bucket"

哪个应该启动 docker 容器,然后执行 mc 客户端来创建存储桶bucket(如果您想要公开的数据中有不同的文件夹,请更改名称)。

如果您是 Docker Compose 粉丝,您可以尝试https://gist.github.com/harshavardhana/cb6c0d4d220a9334a66d6259c7d54c95 中记录的内容,或者使用自定义入口点构建您自己的映像。

【讨论】:

    猜你喜欢
    • 2022-08-12
    • 1970-01-01
    • 2022-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-18
    相关资源
    最近更新 更多