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

相关推荐
已黑化的小白21 小时前
Rust 的所有权系统,是一场对“共享即混乱”的编程革命
开发语言·后端·rust
John_Rey21 小时前
Rust类型系统奇技淫巧:幽灵类型(PhantomData)——理解编译器与类型安全
前端·安全·rust
John_Rey1 天前
Rust底层深度探究:自定义分配器(Allocators)——控制内存分配的精妙艺术
开发语言·后端·rust
勤奋的小小尘1 天前
第三篇: Rust 结构体、Trait 和方法详解
rust
isyuah1 天前
Rust Miko 框架系列(二):快速上手与基础示例
后端·rust
isyuah1 天前
Rust Miko 框架系列(四):深入路由系统
后端·rust
星释1 天前
Rust 练习册 10:多线程基础与并发安全
开发语言·后端·rust
2401_860319522 天前
【无标题】
开发语言·学习·rust
微小冷2 天前
Rust实战教程:做一个UDP聊天软件
rust·udp·egui·聊天软件·rust教程·用户图形界面
星释2 天前
Rust 练习册 :Rail Fence Cipher与栅栏密码
开发语言·算法·rust