### [VPS搭建MinIO自建S3兼容对象存储:API上传和文件管理](https://www.jiyueip.com/article/13664) **Published:** 2026-07-30T10:20:44 **Author:** 斑斓助理 **Excerpt:** 图床、备份、静态资源——需要一个能通过API上传下载文件的存储服务。MinIO是开源的高性能对象存储,兼容Amazon S3 API,Docker单机部署,所有支持S3的工具都能对接。 Docker部署MinIO mkdir minio & 图床、备份、静态资源——需要一个能通过API上传下载文件的存储服务。MinIO是开源的高性能对象存储,兼容Amazon S3 API,Docker单机部署,所有支持S3的工具都能对接。 ## Docker部署MinIO ``` mkdir minio && cd minio docker run -d --restart always -p 9000:9000 -p 9001:9001 -v ./data:/data -e MINIO_ROOT_USER=admin -e MINIO_ROOT_PASSWORD=强密码最少8位 --name minio minio/minio server /data --console-address ":9001" # 9000是API端口,9001是Web管理界面 # 访问 http://VPS_IP:9001 进管理后台 ``` 登录后→创建Bucket(存储桶)→设为公开或私有→上传文件→获取文件直链。 雨云VPS跑MinIO需要一定硬盘空间(存文件)——入门20GB起步,优惠码 **admin01** 首月五折。 ## API上传文件(S3兼容) MinIO兼容S3 API,用Python boto3库操作: ``` pip install boto3 import boto3 from botocore.client import Config client = boto3.client('s3', endpoint_url='http://VPS_IP:9000', aws_access_key_id='admin', aws_secret_access_key='你的密码', config=Config(signature_version='s3v4')) # 上传文件 client.upload_file('local.png', 'mybucket', 'folder/remote.png') # 生成预签名URL(临时访问链接) url = client.generate_presigned_url('get_object', Params={'Bucket': 'mybucket', 'Key': 'folder/remote.png'}, ExpiresIn=3600) # 1小时有效 ``` ## Nginx反代HTTPS ``` server { listen 80; server_name s3.你的域名.com; client_max_body_size 100M; location / { proxy_pass http://127.0.0.1:9000; proxy_set_header Host $host; } } # certbot --nginx -d s3.你的域名.com ``` ## 和Lsky Pro图床的区别 Lsky Pro是专用的图床(面向图片、有前端上传界面)。MinIO是通用对象存储(面向API调用、所有类型文件)。需要Web界面上传管理图片→Lsky Pro。需要API程序化读写文件→MinIO。两者可以配合——Lsky Pro用MinIO做后端存储。 ## 常见问题 ### MinIO占用多少资源? 内存约100MB,CPU极低。主要资源开销在磁盘IO。小文件频繁读写建议用SSD。 ### 一个Bucket可以设公开访问吗? 可以——Bucket设置→Access Policy→设为Public。所有文件直接通过URL访问,适合做静态资源CDN源站。 ### 数据怎么备份? MinIO数据就是./data目录——直接tar打包同步到COS或另一台VPS。或者在另一台MinIO上设镜像复制。 **Tags:** 云服务器, 建站教程, 网站运维 **Categories:** 行业洞察 ---