【分布式知识】分布式对象存储组件-Minio

文章目录

    • 什么是minio
      • 核心特点:
      • 使用场景:
      • 开发者工具:
      • 社区和支持:
    • 核心概念
      • 什么是对象存储?
      • MinIO 如何确定对对象的访问权限?
      • 我可以在存储桶内按文件夹结构组织对象吗?
      • 如何备份和恢复 MinIO 上的对象?
      • MinIO 提供哪些工具来根据访问速度和频率管理对象?
      • MinIO 如何保护对象免遭意外覆盖或删除?
        • 锁定
        • 版本控制
    • 架构解析
      • 分布式架构
      • 存储机制
      • 高可用性和扩展性
      • 兼容性
      • 安全性
      • 管理和监控
    • minio扩容
      • 扩容前的准备
      • 添加新节点
      • 扩展存储
      • 数据迁移
      • 测试和验证
      • 示例命令
        • 在新节点上安装并启动MinIO服务:
        • 更新集群配置(如果有需要):
        • 使用`mc`工具测试数据迁移:
      • 注意事项
    • 命令行
      • 基本配置
        • 设置环境变量:
      • 基本命令
        • 连接到MinIO服务器:
        • 列出所有存储桶:
        • 创建新的存储桶:
        • 删除存储桶:
        • 切换当前工作目录到指定存储桶:
      • 文件操作
        • 上传文件到存储桶:
        • 下载文件到本地:
        • 复制存储桶内的文件:
        • 删除存储桶内的文件:
      • 目录操作
        • 上传整个目录到存储桶:
        • 下载整个目录到本地:
        • 删除存储桶内的目录:
      • 更多命令
        • 列出存储桶中的所有对象:
        • 查看特定对象的信息:
        • 设置对象的元数据:
        • 获取对象的元数据:
        • 生成共享链接:
        • 启动MinIO服务器(如果安装了MinIO服务端):
    • 相关文献

什么是minio

MinIO是一个开源的对象存储服务器,它旨在提供高性能、高可扩展性的存储解决方案。以下是关于MinIO的一些详细介绍:

核心特点:

  1. 高性能:MinIO设计用于提供高速的数据访问速度,在标准硬件上也能达到非常高的吞吐量。
  2. 云原生:MinIO支持Kubernetes,并且适合在云环境中运行,特别是对于微服务架构的应用。
  3. 可扩展性:MinIO支持水平扩展,可以通过增加更多的节点来扩展存储容量和性能。
  4. API兼容性:MinIO与Amazon S3 API兼容,这使得现有的S3应用程序可以轻松迁移或与MinIO集成。
  5. 跨平台:MinIO可以在Linux、Windows和macOS等多个操作系统上运行。
  6. 安全性:MinIO支持加密、身份验证和授权等功能,确保数据的安全性。

使用场景:

  • 大数据存储:适合存储海量的数据,如日志文件、分析数据等。
  • 备份与归档:可以用来备份重要的数据,同时也支持长期的数据归档。
  • Web应用:可以作为Web应用的静态资源存储库,如图片、视频等。
  • 容器化应用:非常适合云原生应用的数据持久化需求。
  • IoT应用:可以存储从物联网设备收集的数据。

开发者工具:

  • MinIO支持多种编程语言的SDK,包括Java、Python、Go等,方便开发者快速集成MinIO到自己的应用中。
  • 它还提供了命令行界面(CLI),使得终端用户可以方便地管理和操作存储在MinIO中的对象。

社区和支持:

  • MinIO有一个活跃的开源社区,提供了丰富的文档和技术支持,帮助用户更好地理解和使用这个工具。
    由于MinIO的这些特点,它成为了许多组织和个人在构建需要高性能、可扩展存储解决方案的应用和服务时的选择。

核心概念

什么是对象存储?

对象是二进制数据,有时也称为二进制大对象 (BLOB)。Blob 可以是图像、音频文件、电子表格,甚至是二进制可执行代码。MinIO 等对象存储平台提供专用工具和功能来存储、检索和搜索 Blob 。

MinIO 对象存储使用存储桶来组织对象。存储桶类似于文件系统中的文件夹或目录,每个存储桶可以容纳任意数量的对象。MinIO 存储桶提供与 AWS S3 存储桶相同的功能。

例如,假设有一个托管网络博客的应用程序。该应用程序需要存储各种 blob,包括视频和图像等丰富的多媒体。

MinIO 通过功能支持多级嵌套目录,prefixing 以支持最动态的对象存储工作负载。

MinIO 如何确定对对象的访问权限?

MinIO 要求客户端对每个新操作执行身份验证和授权。 因此,身份和访问管理 (IAM)是 MinIO 配置的关键组件。

身份验证可验证连接客户端的身份。MinIO 要求客户端使用AWS 签名版本 4 协议进行身份验证,并支持已弃用的签名版本 2 协议。具体来说,客户端必须提供有效的访问密钥和密钥才能访问任何 S3 或 MinIO 管理 API,例如PUT、GET和DELETE操作。

然后,MinIO 检查经过身份验证的用户或客户端是否有权在部署上执行操作或使用资源。MinIO 使用基于策略的访问控制 (PBAC),其中每个策略描述一个或多个规则,这些规则概述了用户或用户组的权限。MinIO在创建策略时支持特定于 S3 的操作和条件。

默认情况下,MinIO拒绝访问用户分配或继承的策略中未明确引用的操作或资源。

MinIO 提供了访问管理功能作为软件的一部分。或者,您可以将 MinIO 配置为使用Active Directory/LDAP或OpenID/OIDC与多个外部 IAM 提供程序之一进行身份验证。

MinIO 如何保护数据安全?
MinIO 支持在驱动器上对对象进行编码(静态加密)以及在从一个位置转换到另一个位置时进行编码(传输中加密或“动态加密”)的方法。启用后,MinIO 会利用服务器端加密以加密状态写入对象。要检索和读取加密对象,用户必须具有适当的访问权限并提供对象的解密密钥。

MinIO 支持传输层安全性(TLS) 版本 1.2 和 1.3 加密对象。TLS 取代了以前使用的安全套接字层 (SSL) 方法,该方法现已弃用。由互联网工程任务组 (IETF) 维护的 TLS 标准提供了互联网通信用于支持加密、身份验证和数据完整性的标准。

验证用户和验证对象访问权限的过程称为TLS 握手。验证完成后,TLS 提供密码来加密和解密从服务器到请求客户端的信息传输。

MinIO 支持多种服务器端加密方法。

我可以在存储桶内按文件夹结构组织对象吗?

MinIO 为每个对象使用前缀方法,模仿传统文件系统的文件夹结构。前缀涉及在对象名称前面添加固定字符串。

使用前缀,您无需手动创建文件夹和子文件夹。相反,MinIO 会查找/对象名称前缀中的字符。每个字符都/表示一个新文件夹或子文件夹。

MinIO 使用对象的名称和前缀自动生成一系列用于存储对象的文件夹和子文件夹。当你在多个对象上使用相同的前缀字符串时,MinIO 会将它们识别为相似或分组的对象。

例如,名为 的对象/articles/john.doe/2022-01-02-MinIO-Object-Storage.md最终会存放在articles存储桶中标有 的文件夹中john.doe。

MinIO 对象存储可能类似于以下结构,具有三个存储桶。MinIO 会articles根据这些对象的前缀自动在存储桶中生成两个文件夹。

/ #root
/images/
   2022-01-02-MinIO-Diagram.png
   2022-01-03-MinIO-Advanced-Deployment.png
   MinIO-Logo.png
/videos/
   2022-01-04-MinIO-Interview.mp4
/articles/
   /john.doe/
      2022-01-02-MinIO-Object-Storage.md
      2022-01-02-MinIO-Object-Storage-comments.json
   /jane.doe/
      2022-01-03-MinIO-Advanced-Deployment.png
      2022-01-02-MinIO-Advanced-Deployment-comments.json
      2022-01-04-MinIO-Interview.md

MinIO 本身不限制任何特定前缀可以包含的对象数量。但是,硬件和网络条件可能会因前缀较大而对性能产生影响。

使用中等或预算有限的硬件进行部署时,应将其工作负载设计为以每个前缀 10,000 个对象为基准。根据基准测试和对实际工作负载的监控将此目标提高到硬件可以有效处理的水平。

使用高性能或企业级硬件的部署通常可以处理具有数百万个或更多对象的前缀。

MinIO SUBNET企业账户可以利用年度架构审查作为部署和维护策略的一部分,以确保依赖 MinIO 的项目的长期性能和成功。

有关限制前缀内容的好处的更深入讨论,请参阅有关优化 S3 性能的文章。

如何备份和恢复 MinIO 上的对象?

MinIO 提供两种类型的复制,用于将对象、其版本及其元数据从一个位置复制到另一个位置。您可以在存储桶级别或站点级别配置复制。

存储桶级别复制既可以作为单向、主动-被动复制(例如用于存档目的),也可以作为双向、主动-主动复制,以使两个存储桶彼此保持同步。

站点级复制功能作为双向、主动-主动复制,以使多个数据位置(例如不同的地理数据中心)彼此同步。

除了复制之外,MinIO 还提供镜像服务。 仅将实际对象复制到任何其他 S3 兼容数据存储,包括其他 MinIO 存储。但是,版本和元数据不会使用该命令备份。mc mirrormc mirror

独家访问驱动器
MinIO需要 对用于对象存储的驱动器或卷具有独占访问权限。任何其他流程、软件、脚本或人员都不得直接对提供给 MinIO 的驱动器或卷或 MinIO 放置在其上的对象或文件执行任何操作。
除非得到 MinIO 工程部门的指示,否则请勿使用脚本或工具直接修改、删除或移动所提供驱动器上的任何数据分片、奇偶校验分片或元数据文件,包括从一个驱动器或节点移动到另一个驱动器或节点。此类操作很可能会导致大面积损坏和数据丢失,超出 MinIO 的修复能力。

MinIO 提供哪些工具来根据访问速度和频率管理对象?

分层规则允许将经常访问的对象存储在热存储或温存储中,这通常更昂贵但提供更好的性能。

访问频率较低的对象可以移至冷存储。冷存储通常会以较低的性能换取较低的价格。

MinIO 如何保护对象免遭意外覆盖或删除?

锁定

锁定是一种一次写入多次读取 (WORM) 机制,可防止删除或修改对象。锁定后,MinIO 会无限期地保留对象,直到有人移除锁定或锁定过期。

MinIO 提供:

  • 法律保留锁,供所有用户无限期保留

  • 对所有用户实施基于时间的限制

  • 为非特权用户制定基于时间的锁规则

版本控制

默认情况下,使用相同名称(包括前缀)写入的对象会覆盖现有的同名对象。MinIO 提供了一个配置选项来创建启用了版本控制的存储桶。 版本控制可让您访问随时间变化的唯一命名对象的各个迭代。启用后,MinIO 会将变异对象写入与原始对象不同的版本,从而允许访问原始对象和更新的已更改对象。

MinIO 存储桶上的附加配置决定了存储桶中每个对象的旧版本保留多长时间。

架构解析

MinIO的架构设计是为了实现高性能、可扩展性以及简单易用性。以下是对MinIO架构的一些关键特性的解析:

分布式架构

deploy-arc

  • 无中心化设计:MinIO采用了一种去中心化的架构,其中对象数据被分散存储在集群的不同节点上。这种设计避免了单点故障,并提高了系统的可靠性。
  • 负载均衡:MinIO可以使用Web负载均衡器或DNS轮询(DNS round-robin)来平衡请求负载,从而提高系统的整体性能。

存储机制

minio-bucket

  • Bucket和Object:在MinIO中,数据被组织成Buckets(桶),每个Bucket类似于传统文件系统中的目录。Bucket中的数据则被进一步划分为Objects(对象),每个对象都有一个唯一的键来标识。
  • 本地文件系统:每个Bucket在本地文件系统中表示为一个目录,而对象则是该目录下的文件。这种设计简化了数据的管理和存储。

高可用性和扩展性

  • 水平扩展:MinIO支持水平扩展,即通过增加更多的节点来增加存储容量和性能。这种扩展性使得MinIO能够处理大量数据和高并发请求。
  • 多租户支持:MinIO支持多租户架构,允许多个用户或服务共享相同的存储基础设施,同时保持数据隔离。

兼容性

  • S3兼容API:MinIO完全兼容Amazon S3 API,这使得现有的S3应用程序可以直接与MinIO交互,无需修改代码。

安全性

  • 认证和授权:MinIO支持多种认证机制,如IAM(Identity and Access Management)用户认证,以及通过证书或其他方式对数据进行加密传输。
  • 数据加密:支持在传输过程中和静止状态下的数据加密,以保证数据的安全性。

管理和监控

  • 命令行工具(CLI):提供了强大的命令行工具,使得用户可以方便地管理存储在MinIO中的对象。
  • API和SDKs:除了S3兼容的API之外,MinIO还提供了多种编程语言的SDK,以便开发者能够更容易地集成MinIO到他们的应用中。
  • 可视化界面:虽然MinIO本身主要是一个命令行和API驱动的服务,但它也支持通过第三方工具或插件提供图形化的管理界面。

minio扩容

MinIO的设计允许通过水平扩展来增加存储容量和提升性能。扩容通常意味着添加更多的节点到现有的MinIO集群中。以下是进行MinIO扩容的一般步骤:

扩容前的准备

  1. 评估需求:确定需要增加多少存储容量或者提高多少性能。
  2. 规划布局:根据需求确定需要添加的新节点数量以及它们将如何分配存储空间。
  3. 备份数据:在进行任何可能影响数据的操作之前,最好先备份数据。

添加新节点

  1. 安装MinIO:在新的服务器上安装MinIO。确保新服务器上的MinIO版本与现有集群版本相匹配。
  2. 配置新节点:设置新节点上的MinIO服务,包括配置端点、访问密钥和秘密密钥等信息。

扩展存储

  1. 调整存储路径:将新节点上的存储路径加入到MinIO集群中。如果是单机模式,只需确保有足够的磁盘空间;如果是分布式模式,则需要将新的磁盘或服务器加入集群。
  2. 更新集群配置:如果使用的是MinIO的分布式模式,那么需要更新集群配置来反映新的节点信息。

数据迁移

  1. 手动迁移数据:如果是在同一个数据中心内,可以通过直接复制文件的方式将数据迁移到新的存储位置。
  2. 使用工具迁移数据:可以使用mc命令行工具或者通过API调用来迁移数据。

测试和验证

  1. 测试新配置:确保所有节点都能正常工作,并且数据可以正确读写。
  2. 监控性能:检查扩容后的集群是否达到了预期的性能指标,如IOPS、吞吐量等。

示例命令

假设你要在一个已经存在的MinIO集群中添加一个新的节点,可以通过如下步骤:

在新节点上安装并启动MinIO服务:
minio server /path/to/new/data/folder --address :9000 --config-dir /etc/minio

这里--address :9000指定了监听端口,--config-dir /etc/minio指定了配置目录。

更新集群配置(如果有需要):

如果使用的是分布式模式,可能需要编辑集群配置文件,将新节点的信息添加进去。

使用mc工具测试数据迁移:
mc cp -r /path/to/local/folder miniocloud/bucket/newpath

这里miniocloud是一个预设的别名,指向你的MinIO集群。

注意事项

  • 一致性检查:扩容后,建议进行一致性检查,确保所有副本都同步并且数据完整。
  • 监控工具:使用监控工具来持续监控集群的健康状况和性能。
  • 安全性:确保新加入的节点遵循相同的安全策略,如身份验证、数据加密等。

扩容MinIO集群是一项技术要求较高的操作,尤其是在生产环境中。务必谨慎行事,并确保有详细的计划和应急措施。如果不确定如何操作,可以参考MinIO官方文档或寻求专业的技术支持。

命令行

MinIO提供了命令行界面(CLI),使得用户可以方便地执行各种对象存储相关的任务,如创建和删除存储桶(buckets)、上传和下载对象等。下面是MinIO CLI的一些常用命令及其简要说明。

基本配置

首先,你需要配置MinIO客户端以连接到你的MinIO服务器。你可以设置环境变量或者直接在命令行中指定端点、访问密钥和秘密密钥。

设置环境变量:
export MINIO_ACCESS_KEY=your_access_key
export MINIO_SECRET_KEY=your_secret_key
export MINIO_ENDPOINT=minio_server_endpoint:port

基本命令

连接到MinIO服务器:
mc alias set myminio http://minio_server_endpoint:port your_access_key your_secret_key
列出所有存储桶:
mc ls myminio
创建新的存储桶:
mc mb myminio/mybucket
删除存储桶:
mc rb myminio/mybucket
切换当前工作目录到指定存储桶:
mc cd myminio/mybucket

文件操作

上传文件到存储桶:
mc cp /path/to/local/file myminio/mybucket/remote/path
下载文件到本地:
mc cp myminio/mybucket/remote/path /path/to/local/directory
复制存储桶内的文件:
mc cp myminio/mybucket/oldpath myminio/mybucket/newpath
删除存储桶内的文件:
mc rm myminio/mybucket/path/to/object

目录操作

上传整个目录到存储桶:
mc cp -r /path/to/local/directory myminio/mybucket/remote/path
下载整个目录到本地:
mc cp -r myminio/mybucket/remote/path /path/to/local/directory
删除存储桶内的目录:
mc rm -r myminio/mybucket/path/to/directory

更多命令

列出存储桶中的所有对象:
mc ls myminio/mybucket
查看特定对象的信息:
mc stat myminio/mybucket/path/to/object
设置对象的元数据:
mc setmeta myminio/mybucket/path/to/object --header "X-Amz-Meta-Custom-Header: custom value"
获取对象的元数据:
mc getmeta myminio/mybucket/path/to/object
生成共享链接:
mc presign myminio/mybucket/path/to/object
启动MinIO服务器(如果安装了MinIO服务端):
minio server /path/to/data/folder --address :9000

以上是一些基本的MinIO CLI命令示例。通过这些命令,你可以执行大部分日常的对象存储操作。如果你需要更详细的功能介绍或者有特定的需求,建议查阅官方文档获取最新的命令列表和参数选项。

相关文献

Mino对象存储系统官网

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/904134.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

《ToDesk 云电脑、易腾云、青椒云移动端体验实测:让手机秒变超级电脑》

前言 科技发展到如今2024年,可以说每一年都在发生翻天覆地的变化。云电脑这个市场近年来迅速发展,无需购买和维护额外的硬件就可以体验到电脑端顶配的性能和体验,并且移动端也可以带来非凡体验。我们在外出办公随身没有携带电脑情况下&#x…

R语言机器学习算法实战系列(十四): CatBoost分类算法+SHAP值 (categorical data gradient boosting)

禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍CatBoost的原理CatBoost的步骤教程下载数据加载R包导入数据数据预处理数据描述数据切割设置数据对象调节参数训练模型预测测试数据评估模型模型准确性混淆矩阵模型评估指标ROC Curv…

Android 应用权限管理详解

文章目录 1. 权限类型2. 权限请求机制3. 权限组和分级4. 权限管理的演进5. 权限监控和 SELinux 强制访问控制6. 应用权限审核和 Google Play Protect7. 开发者最佳实践8. 用户权限管理9. Android 应用沙箱模型10. Scoped Storage(分区存储)11. 背景位置权…

Fsm1

为了处理有时间上先后的事件,在FPGA中采用状态机的形式完成事件处理。 Mealy 状态机:输出不仅取决于当前状态,还取决于输入状态。 Moore 状态机:组合逻辑的输出只取决于当前状态,而与输入状态无关。 二段式状态机&…

ubuntu20.04系统安装

文章目录 前言参考1 一、准备工作1、进入BIOS,设置 UEFI/Legacy Boot选项 为UEFI2、进入BIOS界面将Secure Boot禁用3、USB启动为enable 二、单系统安装1、插入U盘,电脑正常开机后 总结 前言 装了很多次ubuntu系统,整理一篇自己的文章很费时间…

计算机毕业设计Hadoop+大模型高考推荐系统 高考分数线预测 知识图谱 高考数据分析可视化 高考大数据 大数据毕业设计 Hadoop 深度学习

温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 开题报告 题目&#xff1a…

UML总结

零:学习链接 UML_哔哩哔哩_bilibili 一:UML概述 二:类图 类图(Class Diagram)是统一建模语言(UML)中一种重要的图形表示,用于描述系统中的类及其之间的关系。它是面向对象设计中常…

大数据-198 数据挖掘 机器学习理论 - scikit-learn 归一化 距离的惩罚

点一下关注吧!!!非常感谢!!持续更新!!! 目前已经更新到了: Hadoop(已更完)HDFS(已更完)MapReduce(已更完&am…

Ubuntu UFW防火墙规则与命令示例大全

在服务器安全领域,防火墙是守护网络安全的坚实盾牌。UFW(Uncomplicated Firewall),即“不复杂的防火墙”,是一个运行在iptables之上的防火墙配置工具,它为Ubuntu系统默认提供了一个简洁的命令行界面&#x…

(蓝桥杯C/C++)——常用库函数

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 一、 二分查找 1.二分查找的前提 2.binary_ search函数 3.lower_bound和upper_bound 二、排序 1.sort概念 2.sort的用法 3.自定义比较函数 三、全排列 1.next p…

iOS Swift5算法恢复——HMAC

demangle的时候看到了CryptoSwift,HMAC,于是写一个helloworld,用于对照。 sudo gem install cocoapods pod init pods文件,注意要标注静态链接: # Uncomment the next line to define a global platform for your p…

为什么架构设计禁止IP直连?

什么是IP直连? IP直连指应用程序直接在代码中硬编码IP地址,比如,连接mysql数据库的数据库链接,如下的定义方式,就属于IP直连。 这种写法在开发环境中很常见,但是,在正式生产环境中,…

Java Deeplearning4j:实现文本分类

🧑 博主简介:历代文学网(PC端可以访问:https://literature.sinhy.com/#/literature?__c=1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,精通Java编程,高并发设计,Springboot和微服务,熟悉Linux,ESXI虚拟化以及云原生Docker和K8s,热衷于探索科…

Java程序设计:spring boot(10)——单元测试

1 pom.xml 测试依赖添加 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId> </dependency> 2 Service业务方法测试 以 UserService 为例&#xff0c;src/test/java ⽬录下添…

xshell上使用lrzsz工具通过串口传输文件

注意事项 最好加"-E" 选项&#xff0c;这样不会覆盖现有的同名文件。

人工智能与数据安全:Facebook如何应对隐私挑战

在数字时代&#xff0c;数据隐私和安全成为了用户和企业关注的核心问题。作为全球最大的社交媒体平台之一&#xff0c;Facebook面临着日益严峻的隐私挑战。近年来&#xff0c;频繁发生的数据泄露事件和对用户隐私的质疑&#xff0c;使得Facebook在保护用户数据方面倍感压力。为…

MPSK(BPSK/QPSK/8PSK)调制解调的Matlab仿真全套

一、概述 MPSK(BPSK、QPSK、8PSK)等是常用的相位调制方式,本文对数据获取、比特流组织、基带调制、上变频发送、添加噪声、接收下变频、基带解调、数据还原等过程进行仿真。 模块化、通用化设计,将函数分为(1)数据读取转比特流;(2)基带调制【参数控制调制类型】;(…

Python实现全国岗位招聘信息可视化分析(源码+论文+部署讲解)

项目源码&数据源获取 利用Python实现全国岗位招聘信息可视化分析 项目背景&#xff1a; 1.为企业招聘决策提供科学的依据和参考&#xff0c;可以帮助人力资源部门、招聘机构和求职者了解当前的就业形势、行业趋势和人才需求&#xff0c;从而做出更明智的招聘和求职决策。…

【c语言】运算符汇总(万字解析)

&#x1f31f;&#x1f31f;作者主页&#xff1a;ephemerals__ &#x1f31f;&#x1f31f;所属专栏&#xff1a;C语言 目录 前言 一、c语言运算符的分类 二、各运算符的功能及使用 1. 算数运算符 - * / % 2. 位运算符 二进制和进制转换 二进制转十进制 十进制…

C# OpenCvSharp DNN UNet 推理

目录 效果 模型 项目 代码 下载 效果 模型 Inputs ------------------------- name&#xff1a;data tensor&#xff1a;Float[1, 3, 256, 256] --------------------------------------------------------------- Outputs ------------------------- name&#xff1a;p…