--- title: 图床 type: concept tags: [image, hosting, web] date: 2025-12-29 --- # 图床 ## Definition 图床(Image Hosting)是指托管图片/媒体文件的服务,通过 URL 直接访问托管的文件。传统图床(如 Imgur、SM.MS)是第三方云服务;自托管图床则在自有服务器上运行,提供完全的数据控制。 ## Alternatives Comparison | 图床方案 | 存储位置 | 成本 | 控制权 | 适用场景 | |----------|----------|------|--------|----------| | Imgur | 云端 | 免费有限 | 无 | 临时分享 | | SM.MS | 云端 | 免费 | 无 | 临时分享 | | Cloudflare R2 | 云端(S3兼容) | 按量计费 | 部分 | 生产环境 | | **MinIO + Zipline** | 本地 NAS | 仅电费 | 完全 | 自托管 | | Chevereto | 自托管 | 仅服务器 | 完全 | 自托管 | ## Architecture Patterns ### Pattern 1: MinIO + Zipline(本方案) ``` [Zipline UI/API] → [S3 API] → [MinIO] → [NAS Storage] ↑ [PostgreSQL] (metadata) ``` ### Pattern 2: Direct Upload to S3 ``` [Client] → [Presigned URL] → [AWS S3/R2/MinIO] ``` ### Pattern 3: Traditional Self-Hosted ``` [Nginx] → [Local Filesystem] → [Disk/NAS] ``` ## Key Design Considerations 1. **存储后端选择** - S3 兼容(如 MinIO):可迁移性强,与云端互通 - 本地文件系统:简单但迁移困难 2. **访问控制** - Public Bucket:图片直接访问,无需认证 - Presigned URL:限时访问,适合私有内容 3. **元数据管理** - 数据库存储:支持搜索、统计、管理 - 文件系统存储:简单但功能有限 4. **工作流集成** - API 上传:[[n8n]]、脚本自动化 - 前端直传:用户体验好但需 CORS 配置 ## MinIO + Zipline Specifics - **MinIO**:S3 兼容对象存储,存储文件实体 - **Zipline**:图床应用层,提供 UI + API - **PostgreSQL**:元数据存储(文件名、URL、时间戳等) ## Connections - [[Zipline]] ← provides ← [[图床]] - [[MinIO]] ← stores ← [[图床]] files - [[n8n]] ← integrates with ← [[图床]] ## Related Concepts - [[S3-兼容对象存储]] - [[对象存储]] - [[Docker堆栈]]