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

本文分享 RustFS 的安装、访问密钥、Bucket 创建的使用,以及用 Python SDK 使用 RustFS 系统。

关于 RustFS

RustFS 是一款开源免费的对象存储系统,由 Rust 编写,完全兼容 S3 协议。支持二进制和 Docker 安装。本文分享 RustFS 默认密码的修改。

安装 RustFS

执行如下命令即可完成安装:

arduino 复制代码
curl -O  https://rustfs.com/install_rustfs.sh && bash install_rustfs.sh`

安装完毕,可以使用默认用户名和密码进行登录。默认用户名和密码信息默认存储在 /etc/default/rustfs

ini 复制代码
cat /etc/default/rustfs
RUSTFS_ACCESS_KEY=rustfsadmin
RUSTFS_SECRET_KEY=rustfsadmin
RUSTFS_VOLUMES="/data/rustfs0"
RUSTFS_ADDRESS=":9000"
RUSTFS_REGION="cn-east-1"
RUSTFS_CONSOLE_ENABLE=true
RUST_LOG=warn
RUSTFS_OBS_LOG_DIRECTORY="/var/logs/rustfs/"

可以看到默认用户名和密码都是 rustfsadmin,使用此信息,通过通过 localhost:9000 登录 RustFS:

访问密钥创建

登录 RustFS 控制台,在左侧导航栏选择访问密钥,点击右上角的添加访问密钥,输入过期时间、名称和描述即可完成创建:

保存好访问密钥(Access key 和 Access Token),后面会用到。

用 Kimi K2 生成 Python demo

给 Kimi K2 给一段下面的提示词:

bash 复制代码
假设你是 minio/s3 专家和 python 高手,我需需要你帮我利用 minio/s3 的 sdk boto3,帮我写一段程序,用来创建 minio bucket,并生成一个 txt文件,文件的内容是 Hello RustFS,然后把这个文件上传到 minio 的bucket 中

Kimi K2 就会生成一段使用 minio Python SDK 的代码,由于 RustFS 是 minio 的平替,因此,代码是完全适用 RustFS 的:

ini 复制代码
import os
import tempfile
import boto3
from botocore.exceptions import ClientError
from botocore.config import Config

# ========= 按需修改 =========
ENDPOINT_URL = "http://12.34.56.78:9000"   # MinIO 地址
ACCESS_KEY   = "ACCESS_KEY"
SECRET_KEY   = "SECRET_KEY"
REGION       = "cn-east-1"             # MinIO 可忽略
BUCKET_NAME  = "rustfs-demo"
OBJECT_NAME  = "hello.txt"
CONTENT      = "Hello RustFS"
# ============================

def main() -> None:
    # 1. 初始化 boto3 客户端
    rustfs_client = boto3.client(
        "s3",
        endpoint_url=ENDPOINT_URL,
        aws_access_key_id=ACCESS_KEY,
        aws_secret_access_key=SECRET_KEY,
        region_name=REGION,
        config=Config(signature_version="s3v4")
    )

    # 2. 若 bucket 不存在则创建
    try:
        rustfs_client.head_bucket(Bucket=BUCKET_NAME)
        print(f"Bucket '{BUCKET_NAME}' already exists.")
    except ClientError as e:
        if e.response["Error"]["Code"] == "404":
            rustfs_client.create_bucket(Bucket=BUCKET_NAME)
            print(f"Bucket '{BUCKET_NAME}' created.")
        else:
            raise

    # 3. 本地生成临时文件
    with tempfile.NamedTemporaryFile(mode="w+", delete=False) as tmp:
        tmp.write(CONTENT)
        tmp_path = tmp.name

    try:
        # 4. 上传文件
        rustfs_client.upload_file(
            Filename=tmp_path,
            Bucket=BUCKET_NAME,
            Key=OBJECT_NAME,
            ExtraArgs={"ContentType": "text/plain"}
        )
        print(f"Successfully uploaded '{OBJECT_NAME}' to bucket '{BUCKET_NAME}'.")
    except ClientError as exc:
        print("Upload failed:", exc)
    finally:
        # 5. 清理本地临时文件
        os.remove(tmp_path)

if __name__ == "__main__":
    main()

运行该 python 文件,可以得到如下响应:

arduino 复制代码
Bucket 'rustfs-demo' created.
Successfully uploaded 'hello.txt' to bucket 'rustfs-demo'.

在 RustFS 控制台上查看 Bucket 以及其中的数据:

可以看到 rustfs-demo Bucket 在 RustFS 上创建成功,而且其中有 hello.txt文件。说明 Python SDK 运行成功。

相关推荐
roamingcode4 小时前
我是如何 Vibe Coding,将 AI CLI 工具从 Node.js 迁移到 Rust 并成功发布的
人工智能·rust·node.js·github·claude·github copilot
初恋叫萱萱6 小时前
构建高性能生成式AI应用:基于Rust Axum与蓝耘DeepSeek-V3.2大模型服务的全栈开发实战
开发语言·人工智能·rust
superman超哥2 天前
Serde 性能优化的终极武器
开发语言·rust·编程语言·rust serde·serde性能优化·rust开发工具
sayang_shao2 天前
Rust多线程编程学习笔记
笔记·学习·rust
鸿乃江边鸟2 天前
Spark Datafusion Comet 向量化Rust Native--读数据
rust·spark·native·arrow
硬汉嵌入式2 天前
基于Rust构建的单片机Ariel RTOS,支持Cortex-M、RISC-V 和 Xtensa
单片机·rust·risc-v
低调滴开发3 天前
Tauri开发桌面端服务,配置指定防火墙端口
rust·tauri·桌面端·windows防火墙规则
咚为3 天前
Rust Cell使用与原理
开发语言·网络·rust
咸甜适中4 天前
rust的docx-rs库,自定义docx模版批量生成docx文档(逐行注释)
开发语言·rust·docx·docx-rs
FAFU_kyp4 天前
RISC0_ZERO项目在macOs上生成链上证明避坑
开发语言·后端·学习·macos·rust