问题标签 [minio]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
845 浏览

java - Minio Gradle 依赖 android javax.annotation.CheckReturnValue

我在我的 android 项目中使用了以下库。

io.minio:minio:5.0.2

但是在简单的编译 / gradle 同步和构建 apk 时出现以下错误。

AGPBI: {"kind":"error","text":"程序类型已经存在:javax.annotation.CheckReturnValue","sources":[{}],"tool":"D8"}

0 投票
0 回答
1290 浏览

node.js - 在 MinIO 浏览器中看不到 MinIO 元数据

我能够成功地将对象上传到存储桶,但是当我添加自定义元数据和对象时,我在 minio 浏览器中找不到元数据。

0 投票
1 回答
566 浏览

minio - 替换 4 节点集群中的 minio 节点

我们的 4 节点 minio 集群中的一个节点出现问题,将在几周内被我们的云提供商终止。我已经使用 minio 进行了先前的测试,并且知道它将继续使用 3 个节点运行,但是我将在终止旧节点后几分钟引导一个新节点,并且我们的容器编排器应该在该节点上删除一个新的 minio 容器并进入minio集群;我不关心那部分。

我想知道的是如何在新节点上线后启动 minio 以重新平衡?过去,当我测试这个场景时,新的 minio 容器并没有从其他节点提取太多数据。那是因为我们还在 (n/2) + 1 吗?

假设,我需要什么才能看到数据在 minio 容器之间传输——在新节点上线后替换另一个(不同的)节点?

我会在什么时候看到数据丢失?

如果重要的话,这个 minio 注册表只保存来自内部 docker 注册表的容器映像——它保存的数据量相对较小且是静态的,并且仅在我将映像推送到注册表时才会发生写入。

0 投票
2 回答
1714 浏览

docker - Traefik:将多个 docker 服务聚合到一个逻辑后端

我正在使用其官方 docker -compose 文件运行 minio,该文件创建 4 个服务(容器):minio1、minio2、minio3、minio4。Traefik 将它们视为 4 个独特的服务,但实际上,它们应该被视为单个后端,即我希望 Traefik 为 minio 生成 1 个前端和 1 个后端(有 4 个服务器)。我尝试将它们放入一个组(servicefabric.groupname)但无济于事。我为每个 minio 服务设置了以下标签:

有什么办法可以做到这一点?

0 投票
1 回答
3751 浏览

amazon-s3 - 根据minio中的用户限制bucket访问

我第一次忙于设置 minio,我想限制每个用户,以便他们只能看到他们创建的存储桶或公共存储桶。

这个想法是admin可以看到所有存储桶,但user1只能看到由user1等创建的存储桶。

这可能吗?

我知道使用mc policy我可以将存储桶访问策略设置为none, download, upload, public. 据我所知,将策略设置为none需要经过身份验证的存储桶访问权限 - 但这将允许任何经过身份验证的用户,这不是我想要的。

我在 github 上遇到过这张票 - https://github.com/minio/minio/issues/6811

这将创建一个限制用户访问单个存储桶的用户策略。提供的示例不允许用户列出存储桶(私有和自行创建)、创建新存储桶等。此用户只能访问策略中列出的存储桶。

0 投票
4 回答
3860 浏览

java - Minio 存储桶大小

我想计算minio的桶大小。是否可以使用 MinioClient 计算存储配额?或者有什么最好的方法来计算minio存储的桶大小。

提前致谢

0 投票
1 回答
1825 浏览

kubernetes - k8s、Ingress、Minio 和静态站点

我们有一个安装了 nginx Ingress 和 Minio 的 k8s 集群。在 Minio 中,我有一个名为testerhello worldindex.html文件的存储桶。我使用 Minio MC 客户端将tester存储桶设置为公开。现在,当我访问我的(更改的)minio url 时,我可以看到 hello world 文件,如下所示https://minio.example.com/tester/index.html

我的目标是设置一个入口资源来访问公共存储桶。这是我尝试这样做的清单,但是我只收到 404 错误。. .

ingress.yaml

我也尝试使用索引文件设置路径无济于事,如下所示:

我确实有另一个 Ingress,它通常指向 Minio,它在minio.example.com. miniominio-svc在端口 9000 上有一个服务。

不幸的是,到目前为止,我只收到过来自 Ingress 的 404。还有其他人使用 Ingress 将静态站点部署到公共 Minio 存储桶吗?我究竟做错了什么???

更新

所以我有点到了某个地方。我添加了一个注释并将路径设置为简单//*

这是我的新配置:

现在,即使存储桶是公共的,我仍然可以从 Minio 访问被拒绝,并且我仍然可以访问https://minio.example.com/tester/index.html!?

0 投票
1 回答
1012 浏览

nginx - Nginx 失败,我的变量在位置

所以我正在尝试设置一个 nginx default.conf 并且我在使用变量时遇到了麻烦。我想将子域捕获为$subdomain变量并在default.conf.

这是我的配置:

不幸的是$subdomain,位置块中变量的存在每次都完全使 nginx 失败。如果我要$subdomain在 location 块中替换tester为静态值,那么一切正常。

这里如何正确使用$subdomain变量???

这个问题在某种程度上是对这个问题的跟进:k8s-ingress-minio-and-a-static-site。在那个问题中,我试图使用 Ingress 将代理反向代理到 minio 存储桶,但无济于事。现在我只是想直接通过 Nginx,但我的 var 不起作用。

更新

因此,如果 URL 中有变量,proxy_pass 似乎无法正确解析主机。

尝试了两件事:

  1. 像这样设置解析器:resolver default.cluster.local. 我为 kube-dns 的 fqdn 尝试了一堆组合,但无济于事,一直minio-server找不到。

  2. 不要使用下面提到的 Richard Smith 变量。而是重写所有内容然后代理通过。但是我不明白这将如何工作,并且我得到了非常无用的错误,如下所示:10.244.1.1 - - [07/Feb/2019:18:13:53 +0000] "GET / HTTP/1.1" 405 291 "-" "kube-probe/1.10" "-"

0 投票
1 回答
285 浏览

amazon-s3 - 用于预签名操作的 S3 备用端点

我正在使用 minio 客户端访问 S3。我使用的 S3 存储有两个端点 - 一个(例如 EP1)可从专用网络访问,另一个(例如 EP2)可从 Internet 访问。我的应用程序创建了一个预签名 URL,用于使用 EP1 下载 S3 对象,因为它无法访问 EP2。此 URL 由不在此专用网络上的另一个应用程序使用,因此只能访问 EP2。该 URL 在被网络外部的应用程序使用时(显然)不起作用,因为该 URL 中包含 EP1。

我浏览了 minio 文档,但没有找到任何可以帮助我指定备用端点的东西。

所以我的问题是——

  1. minio有什么我错过的可以帮助我的吗?
  2. 是否有任何 S3 功能允许为其中包含 EP2 的对象生成预签名 URL?
  3. 或者如果不改变当前的网络布局就无法解决?
0 投票
2 回答
737 浏览

angular - 在(例如 Angular)SPA 中使用预签名的 url 会破坏浏览器缓存

在我们的项目中,我们决定使用预签名的 url 作为基本的身份验证机制。

精简我们的设置涉及

  • 存储服务器
  • api服务器
  • 客户端(在浏览器中运行的角度 SPA)

我们使用预签名的 url 将文件从客户端直接上传和下载到存储服务器。

上传流程(简化):

  • 客户端发送api:嘿,我想上传那个
  • api 进行授权和验证,做一些数据库工作并返回一个预签名的 url
  • 客户端直接上传到存储服务器

到目前为止,一切都很好。最大的问题是“下载”流程。

  • 客户问api:嘿,给我看看你有什么的清单
  • api 进行授权、验证并返回一个 json 对象列表,这些对象还包含用于显示文件(图像)的预签名获取 url
  • 客户端显示对象数据列表并使用预签名的 url 嵌入直接从存储服务器下载的图像

这很好用,但会将浏览器缓存增加到数 GB 的 RAM。

发生这种情况是因为在多次调用中生成的预签名 url 不一样,并且在每个请求的授权部分(例如,保持新的生命周期)不同。当用户在分页列表中向前和向后单击时,客户端将收到不同的 url,并且浏览器缓存将它们视为不同的图像。


到目前为止,这似乎是浏览器端的正确行为(不同的 url 等于不同的图像)。

到目前为止,这似乎是 api 方面的正确行为(新调用将返回新的生命周期)。


有没有任何预期的方法来处理这个问题?

流程本身是错误的吗?

除了在运行多个 api 实例时实现集中的预签名 url 缓存之外,还有什么方法可以解决这个问题?


希望有人也可以为我可以使用的有意义的标签提供建议。