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

相关推荐
红烧code21 小时前
【Rust GUI开发入门】编写一个本地音乐播放器(11. 支持动态明暗主题切换)
rust·gui·theme·slint
红烧code1 天前
【Rust GUI开发入门】编写一个本地音乐播放器(7. 制作歌词显示面板)
rust·gui·slint
JordanHaidee1 天前
【Rust GUI开发入门】编写一个本地音乐播放器(13. 实现按键绑定)
rust
JordanHaidee1 天前
【Rust GUI开发入门】编写一个本地音乐播放器(14. 应用打包-制作安装程序)
rust
JordanHaidee1 天前
【Rust GUI开发入门】编写一个本地音乐播放器(12. 国际化应用-多语言支持)
rust
红烧code2 天前
【Rust GUI开发入门】编写一个本地音乐播放器(4. 绘制按钮组件)
rust·gui·svg·slint
朝阳5812 天前
使用过程宏实现自动化新增功能
后端·rust
JordanHaidee2 天前
【Rust GUI开发入门】编写一个本地音乐播放器(8. 从文件中提取歌曲元信息)
rust
清心9152 天前
Windows系统Rust安装与配置,解决安装慢问题
rust
清心9152 天前
Windows系统Rust安装,自定义安装目录
rust