用 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 运行成功。

相关推荐
网络安全打工人2 小时前
CentOS7 安装 rust 1.82.0
开发语言·后端·rust
鱼樱前端2 小时前
rust基础二(闭包)
前端·rust
Source.Liu11 小时前
【unitrix】 6.20 非零整数特质(non_zero.rs)
rust
fqbqrr1 天前
2507rust,rust写驱动
rust
a cool fish(无名)1 天前
rust-模块树中引用项的路径
java·前端·rust
姜 萌@cnblogs1 天前
Saga Reader 0.9.9 版本亮点:深入解析核心新功能实现
前端·ai·rust
susnm2 天前
使用路由重构代码
rust·全栈
Pomelo_刘金2 天前
用 DDD 把「闹钟」需求一点点捏出来
架构·rust·领域驱动设计
Pomelo_刘金2 天前
Clean Architecture 整洁架构:借一只闹钟讲明白「整洁架构」的来龙去脉
后端·架构·rust