本文分享 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 运行成功。