RustFS Rust SDK 使用教程

RustFS入门使用-存储非结构化数据(图片、视频、日志文件等) 本文介绍了基于RustFS构建非结构化数据存储的完整方案。RustFS作为高性能分布式对象存储系统,具有轻量高效(100MB大小)、完全兼容S3、多架构支持等特点。文章详细讲解了Docker和二进制两种部署方式,并演示了图片、视频、日志等非结构化数据的具体存储方法,包括分片上传、生命周期管理等高级功能。同时提供了Python、Java、Node.js等语言的集成示例代码,涵盖文件上传、列举、预签名URL生成等常见操作。最后分享了数据加密、性能监控等最佳实践,帮助开发者构建安全高效的存储解决方案。 阅读详情

由于 RustFS 是完全兼容 S3 的对象存储系统,因此可以通过对 S3 的 Rust SDK 做一些封装来构建适用于 RustFS 的 Rust SDK,通过 SDK 对 RustFS 进行操作,包括存储桶/对象的创建和删除、文件的上传和下载等。

前提条件

RustFS Rust SDK 构造

将 region、access_key_id、secret_access_key 以及 endpoint_url 构造为一个 Config 数据结构,并从环境变量读取对应信息:

pub struct Config {
    pub region: String,
    pub access_key_id: String,
    pub secret_access_key: String,
    pub endpoint_url: String,
}

impl Config {
    pub fn from_env() -> Result<Self> {
        let region = env::var("RUSTFS_REGION")?;
        let access_key_id = env::var("RUSTFS_ACCESS_KEY_ID")?;
        let secret_access_key = env::var("RUSTFS_SECRET_ACCESS_KEY")?;
        let endpoint_url = env::var("RUSTFS_ENDPOINT_URL")?;

        Ok(Config {
            region,
            access_key_id,
            secret_access_key,
            endpoint_url,
        })
    }
}

利用上述构造好的 Config,借助 aws_sdk_s3::Client 构造 RustFS Client:

let config = Config::from_env()?;

let credentials = Credentials::new(
    config.access_key_id,
    config.secret_access_key,
    None,
    None,
    "rustfs",
);

let region = Region::new(config.region);

let endpoint_url = config.endpoint_url;

let shard_config = aws_config::defaults(BehaviorVersion::latest())
    .region(region)
    .credentials_provider(credentials)
    .endpoint_url(endpoint_url)
    .load()
    .await;

let rustfs_client = Client::new(&shard_config);

接着使用构造好的 rustfs_client 进行响应的操作。

创建存储桶

match rustfs_client
    .create_bucket()
    .bucket("your-bucket-name")
    .send()
    .await
{
    Ok(_) => {
        println!("Bucket created successfully");
    }
    Err(e) => {
        println!("Error creating bucket: {:?}", e);
        return Err(e.into());
    }
}

删除存储桶

match rustfs_client
    .delete_bucket()
    .bucket("cn-east-1rust-sdk")
    .send()
    .await
{
    Ok(_) => {
        println!("Bucket deleted successfully");
    }
    Err(e) => {
        println!("Error deleting bucket: {:?}", e);
        return Err(e.into());
    }
}

列出存储桶

match rustfs_client.list_buckets().send().await {
    Ok(res) => {
        println!("Total buckets number is {:?}", res.buckets().len());
        for bucket in res.buckets() {
            println!("Bucket: {:?}", bucket.name());
        }
    }
    Err(e) => {
        println!("Error listing buckets: {:?}", e);
        return Err(e.into());
    }
}

列出对象

match rustfs_client
    .list_objects_v2()
    .bucket("rust-sdk-demo")
    .send()
    .await
{
    Ok(res) => {
        println!("Total objects number is {:?}", res.contents().len());
        for object in res.contents() {
            println!("Object: {:?}", object.key());
        }
    }
    Err(e) => {
        println!("Error listing objects: {:?}", e);
        return Err(e.into());
    }
}

上传文件

let data = fs::read("/file-path/1.txt").await.expect("can not open the file");

match rustfs_client
    .put_object()
    .bucket("rust-sdk-demo")
    .key("1.txt")
    .body(ByteStream::from(data))
    .send()
    .await
{
    Ok(res) => {
        println!("Object uploaded successfully, res: {:?}", res);
    }
    Err(e) => {
        println!("Error uploading object: {:?}", e);
        return Err(e.into());
    }
}

下载对象

match rustfs_client
    .get_object()
    .bucket("rust-sdk-demo")
    .key("1.txt")
    .send()
    .await
{
    Ok(res) => {
        println!("Object downloaded successfully, res: {:?}", res);
    }
    Err(e) => {
        println!("Error downloading object: {:?}", e);
        return Err(e.into());
    }
}

其他的使用,大家可以自行探索,如果借助 Vibe Coding,就更简单了!

SpringBoot+RustFS保姆级教程!文件管理全场景实战,含分片上传企业级方案 本文介绍了如何利用SpringBoot+RustFS构建高性能文件存储系统。通过Docker或二进制方式快速部署RustFS,并详细展示了SpringBoot集成RustFS实现基础文件操作和企业级分片上传的完整方案。文章重点对比了RustFS与传统方案在性能(吞吐量提升43.6%)、成本(降低90%)等方面的优势,提供了分片上传的核心实现代码和性能优化建议(分片大小选择、并发控制等)。此外还涵盖安全权限管理、生产环境部署监控等企业级实践,最后总结了最佳实践方案,帮助开发者构建高可靠、高性能的文件存储服务。 阅读详情

相关推荐

SpringBoot+RustFS实现高效文件存储解决方案

本文介绍了如何通过SpringBoot快速集成RustFS构建高性能文件存储系统。RustFS是一个基于Rust开发的分布式对象存储软件,具有AWSS3兼容性、Apache2.0开源协议等优势。文章详细讲解了Docker部署RustFS、SpringBoot项目配置、核心代码实现(包括文件上传下载功能)以及功能测试验证,并提供了使用x-file-storage抽象层和性能优化建议。RustFS作为MinIO的优秀替代方案,其控制台功能更强大,且兼容现有S3应用,可降低迁移成本。

分布式存储与RustFS的博客 1578

RustFS安装使用

本文介绍了RustFS对象存储系统的部署与使用。RustFS是用Rust编写的开源对象存储系统,兼容S3协议,可作为MinIO替代方案。文章详细说明了如何通过Docker部署RustFS(包括目录创建、容器配置、端口映射等),并演示了Web控制台的使用方法,包括登录、创建存储桶、管理密钥和用户等操作。此外,还介绍了MinIO客户端(mc)的安装和常用命令,如配置别名、文件上传下载、存储桶管理等。最后提供了数据备份还原方案,强调需要同时备份数据和元数据目录。全文提供了完整的操作流程和截图说明。

weixin_45251630的博客 984

私有云界的天花板?RustFS上手体验:高性能、无限扩展、零成本

RustFS基于Rust开发,具有高性能、兼容S3、轻量等优势,实测4K随机读达1.58MIOPS。文章详细介绍了从单机到集群的部署方案,并展示了Web控制台、客户端工具等核心功能体验。性能测试显示其读写速度优异,特别适合私人图床、科研数据存储等场景。与传统方案相比,RustFS可降低90%以上成本,但需注意硬件要求。作者认为RustFS是私有云存储的理想选择,尤其适合需要高性能和低成本存储的用户。

分布式存储与RustFS的博客 2058

RustFS保姆级教程:Docker快速部署兼容S3的本地对象存储

本文提供了一份RustFS对象存储服务的详细Docker部署指南。主要内容包括:1. 前置Docker环境准备;2. 通过docker run命令一键部署带数据持久化的RustFS容器;3. 访问Web管理控制台;4. 使用awscli工具验证S3接口可用性;5. 常用容器运维命令;6. 典型使用场景(本地开发、湖仓测试、文件备份等)。部署仅需一条命令即可完成,兼容标准S3协议,适合快速搭建测试环境进行功能验证和性能对比。文章还提供了官方文档和社区资源链接供深入学习。

分布式存储与RustFS的博客 544

RustFS Windows部署指南:分布式文件系统抽象层实战

文件系统抽象层(FAL)是现代存储中间件实现跨平台、高并发与强一致性的关键技术基础。其核心原理在于将底层IO操作与业务逻辑解耦,通过内存安全的接口调度磁盘、网络或内存设备。Rust语言凭借零成本抽象、无GC停顿和细粒度控制能力,成为构建高性能FAL的理想选择。在Windows环境下,RustFS作为典型Rust实现,不仅支持IOCP与内存映射等原生机制,更提供BLAKE3校验、WAL日志和原子写入等企业级数据可靠性保障,广泛应用于边缘缓存、工业数据采集与金融日志归档等对崩溃一致性要求严苛的场景。

weixin_30565327的博客 862

RustFS 1.0.0:Rust重写的轻量级S3兼容对象存储,Minio替代方案

对象存储是现代应用的基础依赖,S3协议已成为事实标准,Minio凭借生态成熟被广泛使用,但其Go实现带来的内存占用高、配置复杂等问题,在中小团队和边缘场景中往往显得过重。RustFS 1.0.0以Rust重写核心,保持S3 API兼容,无GC、内存可控、镜像精简,让对象存储回归轻量本质。从上传下载、断点续传到预签名URL,RustFS覆盖常用链路,并能通过Docker快速部署,与Spring Boot、小程序、RAGFlow等场景无缝集成。本文从对象存储选型痛点切入,拆解RustFS的架构取舍、部署实践、生

weixin_33919950的博客 343

三分钟部署高性能存储!RustFS保姆级教程:比MinIO快40%的S3兼容方案

RustFS是一款基于Rust语言开发的高性能文件存储系统,兼容S3协议。其核心优势包括:吞吐量提升40%,百万级文件存取耗时缩短至1/3;支持一键安装和Docker部署;提供完整的文件操作API和权限管理功能。特别适合AI/ML、大数据等场景,单文件<100MB,支持从边缘设备到云平台的全场景部署。开发者可通过GitHub参与贡献,遵循Apache 2协议,支持国产化环境。系统提供5分钟快速部署指南和实战操作示例,同时包含权限控制、CI/CD整合等高级功能。

分布式存储与RustFS的博客 2254

数字IC后端实战:OCC电路时钟树综合的5个关键技巧(附Synopsys工具配置)

本文深入探讨了数字IC后端设计中OCC电路时钟树综合的实战技巧。针对工具自动平衡导致的绕线拥塞和时序问题,文章提出了分段处理的核心思路,并详细阐述了通过物理隔离、分段长树策略以及Synopsys工具链(如ICC2、PrimeTime)的精准配置来优化function clk与occ clk路径的关键方法,旨在提升时序收敛性和可制造性。

jwt8token的博客 857

在 Azure Linux 上安装 RustFS

RustFS 是一个用 Rust 语言编写的分布式存储系统,可当作 MinIO 的国产化平替。本文分享在 Azure Linux 上安装并使用对象存储 RustFS 的过程。

DevOps008的博客 1693

SAP License USMM SLAW2 SAP审计

引言 企业每年都会收到SAP License审计邮件,邮件内容大致就是根据贵公司与SAP签定的合同XXX条款规定,贵公司所安装的SAP系统需要进行测定。 关键字: SAP License、 SAP USMM、 SLAW2、 SAP 账号、SAP 账号审计、 SAP License 审计、 SAP 审计报告、SAP 账号优化 SAP License审计邮件 企业每年都会收到SAP License审计邮件,邮件内容大致就是根据贵公司与SAP签定的合同XXX条款规定,贵公司所安...

感悟人生 2981

STM32H7B0VBT6使用Free RTOS配置SD卡+Fatfs文件管理系统

STM32H7B0VBT6使用Free RTOS配置SD卡+Fatfs文件管理系统,记录配置过程

Jack的小窝 5942

MinIO祭了,RustFS来了!

本文介绍了RustFS作为MinIO替代方案的技术实践。作者详细记录了使用Docker快速部署RustFS的过程,包括镜像拉取、容器启动和访问验证。通过修改端点地址和认证信息,原有基于MinIO SDK的上传程序无需其他改动即可无缝切换至RustFS。测试表明,RustFS在S3协议兼容性和使用体验上表现优异,可作为企业级对象存储解决方案。作为国人开发的开源项目,RustFS展示了国产技术的进步,其1.0 alpha版本已具备生产环境部署能力。文章最后提供了相关开发文档和博客链接供读者参考。

为自己代盐的专栏 1660

Qt基础之十九:进程与QProcess

进程就是一个程序的执行实例,也就是正在运行的程序。对操作系统来说,进程就是一个担当分配系统资源CPU时间、内存的实体。在Qt 中,我们使用QProcess来表示一个进程。这个类可以允许我们的应用程序启动一个新的外部程序,并且与这个程序进行通讯。当外部程序开始启动时,QProcess的状态为Starting;外部程序已经启动时,QProcess的状态为Running,并发送started()信号;当外部层序退出了,QProcess的状态为NotRunning(初始状态),并发送finished()信号。

草上爬的博客 1万+

用 kimi k2 Vibe Coding 一个 RustFS Python SDK 示例

摘要:本文介绍了RustFS对象存储系统的安装及Python SDK使用方法。RustFS是兼容S3协议的开源存储系统,可通过脚本快速安装并默认使用rustfsadmin账户登录。文章详细演示了如何通过控制台创建访问密钥,并利用boto3库编写Python程序实现Bucket创建和文件上传功能。示例代码展示了连接RustFS、创建Bucket、生成文本文件并成功上传的完整流程,验证了RustFS与MinIO SDK的兼容性。

新一代高性能分布式对象存储系统 585

手把手教你学PCIE--系统内存管理:GART(Graphics Address Remapping Table)的典型用途详解

GART(图形地址重映射表)是GPU的核心组件,主要用于地址映射转换。其典型用途分为物理模式和虚拟模式两类:在物理模式下,GART将GPU虚拟地址映射到分散的物理内存,支持DMA连续访问非连续内存块,适用于GPU渲染纹理采样和AI推理数据搬运等场景;在虚拟模式下,GART配合IOMMU实现多级映射,将GPU虚拟地址转换为虚拟机物理地址再映射到宿主机物理地址,确保多租户隔离,应用于云服务器GPU共享和容器化AI训练等虚拟化环境。两种模式分别优化了高性能计算场景和虚拟化场景的需求。

MHD0815的博客 367

YOLOv8目标出入计数部署:讲解C#使用ONNX检测模型进行目标出入计数 可运行完整实例

代码、步骤、讲解完整,可一键运行,效果如下:车辆出入计数人员出入计数。

Limiiiing的博客 79

Minio不好用了?来试试RustFS

本文分析了Minio在商业化进程中出现的问题,包括社区版功能缩减、版本更新频繁、S3兼容性问题等痛点。同时介绍了新兴对象存储系统RustFS的优势:采用Rust语言开发,具有更高性能和安全性,完全兼容S3 API且开源友好。文章提供了通过Docker快速部署RustFS的方法,并详细演示了如何使用TypeScript的AWS S3 SDK操作RustFS,包括创建/列出/删除存储桶等基础操作。为寻找Minio替代方案的开发者提供了一个值得考虑的选择。

梅山老妖的博客 892

【华为OD机试真题】439、精准核酸检测 | 机试真题+思路参考+代码解析 (C++、Java、Py、C语言、JS)

题目描述 >为了达到新冠疫情精准防控的需要,为了避免全员核酸检测带来的浪费,需要精准圈定可能被感染的人群现在根据传染病流调以及大数据分析,得到了每个人之间在时间、空间上是否存在轨迹的交叉。现在给定一组确诊人品编号(X1 X2 X3.....n)在所有人当中,找出哪些人票要进行核酸检测,输出需要进行核酸检测的人数。(注意:确诊病例自身不需要再做核酸检) >  需要进行核酸检测的人,是病毒传播链条上的所有人员,即有可能通过确诊病例所能传播到的所有人   例如:A是确诊病例,A和B有接触、B和

KJ.JK 1434

RustFS:Rust打造高性能分布式对象存储

RustFS是一款基于Rust语言开发的高性能分布式对象存储系统,完全兼容AWS S3协议。作为MinIO的现代化替代方案,它凭借Rust语言的内存安全特性、零成本抽象和极致并发能力,在小对象处理等场景下展现出显著性能优势。系统采用Apache 2.0开源协议,支持分布式架构、数据加密和Web管理控制台,满足企业级存储需求。通过Docker Compose可快速部署,5分钟内即可完成环境搭建并验证S3兼容性。RustFS特别适合AI、大数据等需要高性能存储的场景,为开发者提供了更安全、高效的存储解决方案。

分布式存储与RustFS的博客 1311

使用Mask2Former和X-Decoder训练自定义数据集及结果复现报告

本报告记录了使用MMDetection框架中的Mask2Former和X-Decoder模型在自定义数据集上的训练过程。报告包含环境配置、数据集准备、模型训练与优化(解决了Mask2Former的PQ值异常问题)、性能评估等关键环节。详细展示了从数据集转换(将客户提供的COCO格式数据适配MMDetection框架)、配置文件修改、到最终模型训练和评估的全流程。特别针对Mask2Former训练中的PQ值异常问题提供了解决方案,并对比了两种模型在自定义数据集上的表现。报告还包含完整的代码实现和技术细节。

huanghm88的专栏 1094

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

RustFS全面教程:从入门到生产环境部署

在当今数据驱动时代,非结构化数据呈现爆炸式增长,从用户上传的图片视频到机器学习数据集,传统存储方案在性能、成本和扩展性方面面临严峻挑战。RustFS应运而生,它是一款基于Rust语言开发的高性能分布式对象存储系统,完全兼容Amazon S3 API,成为MinIO等传统方案的有力替代者。RustFS的核心优势源于Rust语言的内存安全特性,它从语法层面杜绝了空指针和缓冲区溢出等常见内存漏洞,同时具备接近C语言的运行效率,实现了"安全不妥协性能"的突破。

Rysxt_的博客 2141

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Rust存储生态崛起:2025年必须关注的开源项目-RustFS

RustFS作为基于Rust语言开发的分布式存储系统,凭借零成本抽象和内存安全特性成为MinIO的强力竞争者。测试数据显示其4K随机读性能较MinIO提升42%,延迟降低37%。核心技术包括双层Raft架构实现元数据与数据解耦、tokio-uring零拷贝技术减少70%CPU开销。支持Docker/K8s快速部署,在AI训练和物联网场景表现优异,提供S3/POSIX/HDFS多协议支持。开源项目已获7K+星标,通过Apache2.0协议推动存储技术革新。

分布式存储与RustFS的博客 1281

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

RustFS 分布式对象存储

RustFS 是基于 Rust 语言开发的高性能分布式对象存储系统,完全兼容 AWS S3 标准协议,主打私有化部署、低延迟、无GC抖动、商用友好 Apache 2.0 开源协议,是 MinIO 国产化替代方案。

40kuai的博客 895

MinIO社区版改规则,Rust写的RustFS,是开源存储新选择吗?

MinIO社区版规则的改变,让许多开发者开始寻找新的开源存储方案。本文探讨了后MinIO时代的新选择——RustFS。作为Rust语言打造的对象存储,它不仅带来了内存安全的底层保障,更以超越MinIO的性能、100%S3兼容和更友好的Apache 2.0协议脱颖而出。文章通过对比分析,论证了RustFS为何能成为企业应对存储断供风险、拥抱云原生与AI场景的强有力候选,揭示了开源存储生态的演进新方向。

分布式存储与RustFS的博客 1244

RustFS实战指南:构建高性能非结构化数据存储系统

本文详细介绍了如何使用RustFS构建高性能非结构化数据存储系统。RustFS是一个基于Rust语言开发、完全兼容S3协议的对象存储方案,以其快、轻、省的特点,高效处理图片、视频、日志等非结构化数据的存储与管理。文章提供了从Docker和二进制部署、核心数据操作到多语言代码集成的完整实战指南,并涵盖性能调优与安全监控等进阶内容。

qq_27496129的博客 930

高性能分布式存储 RustFS 的 MCP Server 的扩展实践

RustFS 是一个用 Rust 编写的高性能开源对象存储系统,完全兼容 S3 协议,可作为 MinIO 的国产替代方案。文章介绍了 RustFS 的安装方法(支持 Docker 和二进制方式)以及其 MCP(多语言控制协议)服务器的扩展实践。通过在 server.rs 和 s3_client.rs 中添加创建/删除存储桶的方法,开发者可以扩展 RustFS 的功能。文章还提供了在 Docker 中构建 RustFS MCP 镜像并测试的详细步骤。目前 RustFS 处于 1.0.0-alpha 阶段,但性

新一代高性能分布式对象存储系统 1598
上一篇: 高性能分布式存储 RustFS 的 MCP Server 的扩展实践
下一篇: 分布式对象存储 RustFS 的 TypeScript SDK 使用教程!
rustfs
博客等级 码龄1年 21粉丝 32原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值