问题标签 [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.
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"}
node.js - 在 MinIO 浏览器中看不到 MinIO 元数据
我能够成功地将对象上传到存储桶,但是当我添加自定义元数据和对象时,我在 minio 浏览器中找不到元数据。
minio - 替换 4 节点集群中的 minio 节点
我们的 4 节点 minio 集群中的一个节点出现问题,将在几周内被我们的云提供商终止。我已经使用 minio 进行了先前的测试,并且知道它将继续使用 3 个节点运行,但是我将在终止旧节点后几分钟引导一个新节点,并且我们的容器编排器应该在该节点上删除一个新的 minio 容器并进入minio集群;我不关心那部分。
我想知道的是如何在新节点上线后启动 minio 以重新平衡?过去,当我测试这个场景时,新的 minio 容器并没有从其他节点提取太多数据。那是因为我们还在 (n/2) + 1 吗?
假设,我需要什么才能看到数据在 minio 容器之间传输——在新节点上线后替换另一个(不同的)节点?
我会在什么时候看到数据丢失?
如果重要的话,这个 minio 注册表只保存来自内部 docker 注册表的容器映像——它保存的数据量相对较小且是静态的,并且仅在我将映像推送到注册表时才会发生写入。
docker - Traefik:将多个 docker 服务聚合到一个逻辑后端
我正在使用其官方 docker -compose 文件运行 minio,该文件创建 4 个服务(容器):minio1、minio2、minio3、minio4。Traefik 将它们视为 4 个独特的服务,但实际上,它们应该被视为单个后端,即我希望 Traefik 为 minio 生成 1 个前端和 1 个后端(有 4 个服务器)。我尝试将它们放入一个组(servicefabric.groupname)但无济于事。我为每个 minio 服务设置了以下标签:
有什么办法可以做到这一点?
amazon-s3 - 根据minio中的用户限制bucket访问
我第一次忙于设置 minio,我想限制每个用户,以便他们只能看到他们创建的存储桶或公共存储桶。
这个想法是admin
可以看到所有存储桶,但user1
只能看到由user1
等创建的存储桶。
这可能吗?
我知道使用mc policy
我可以将存储桶访问策略设置为none, download, upload, public
. 据我所知,将策略设置为none
需要经过身份验证的存储桶访问权限 - 但这将允许任何经过身份验证的用户,这不是我想要的。
我在 github 上遇到过这张票 - https://github.com/minio/minio/issues/6811
这将创建一个限制用户访问单个存储桶的用户策略。提供的示例不允许用户列出存储桶(私有和自行创建)、创建新存储桶等。此用户只能访问策略中列出的存储桶。
java - Minio 存储桶大小
我想计算minio的桶大小。是否可以使用 MinioClient 计算存储配额?或者有什么最好的方法来计算minio存储的桶大小。
提前致谢
kubernetes - k8s、Ingress、Minio 和静态站点
我们有一个安装了 nginx Ingress 和 Minio 的 k8s 集群。在 Minio 中,我有一个名为tester
hello 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
!?
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 似乎无法正确解析主机。
尝试了两件事:
像这样设置解析器:
resolver default.cluster.local
. 我为 kube-dns 的 fqdn 尝试了一堆组合,但无济于事,一直minio-server
找不到。不要使用下面提到的 Richard Smith 变量。而是重写所有内容然后代理通过。但是我不明白这将如何工作,并且我得到了非常无用的错误,如下所示:
10.244.1.1 - - [07/Feb/2019:18:13:53 +0000] "GET / HTTP/1.1" 405 291 "-" "kube-probe/1.10" "-"
amazon-s3 - 用于预签名操作的 S3 备用端点
我正在使用 minio 客户端访问 S3。我使用的 S3 存储有两个端点 - 一个(例如 EP1)可从专用网络访问,另一个(例如 EP2)可从 Internet 访问。我的应用程序创建了一个预签名 URL,用于使用 EP1 下载 S3 对象,因为它无法访问 EP2。此 URL 由不在此专用网络上的另一个应用程序使用,因此只能访问 EP2。该 URL 在被网络外部的应用程序使用时(显然)不起作用,因为该 URL 中包含 EP1。
我浏览了 minio 文档,但没有找到任何可以帮助我指定备用端点的东西。
所以我的问题是——
- minio有什么我错过的可以帮助我的吗?
- 是否有任何 S3 功能允许为其中包含 EP2 的对象生成预签名 URL?
- 或者如果不改变当前的网络布局就无法解决?
angular - 在(例如 Angular)SPA 中使用预签名的 url 会破坏浏览器缓存
在我们的项目中,我们决定使用预签名的 url 作为基本的身份验证机制。
精简我们的设置涉及
- 存储服务器
- api服务器
- 客户端(在浏览器中运行的角度 SPA)
我们使用预签名的 url 将文件从客户端直接上传和下载到存储服务器。
上传流程(简化):
- 客户端发送api:嘿,我想上传那个
- api 进行授权和验证,做一些数据库工作并返回一个预签名的 url
- 客户端直接上传到存储服务器
到目前为止,一切都很好。最大的问题是“下载”流程。
- 客户问api:嘿,给我看看你有什么的清单
- api 进行授权、验证并返回一个 json 对象列表,这些对象还包含用于显示文件(图像)的预签名获取 url
- 客户端显示对象数据列表并使用预签名的 url 嵌入直接从存储服务器下载的图像
这很好用,但会将浏览器缓存增加到数 GB 的 RAM。
发生这种情况是因为在多次调用中生成的预签名 url 不一样,并且在每个请求的授权部分(例如,保持新的生命周期)不同。当用户在分页列表中向前和向后单击时,客户端将收到不同的 url,并且浏览器缓存将它们视为不同的图像。
到目前为止,这似乎是浏览器端的正确行为(不同的 url 等于不同的图像)。
到目前为止,这似乎是 api 方面的正确行为(新调用将返回新的生命周期)。
有没有任何预期的方法来处理这个问题?
流程本身是错误的吗?
除了在运行多个 api 实例时实现集中的预签名 url 缓存之外,还有什么方法可以解决这个问题?
希望有人也可以为我可以使用的有意义的标签提供建议。