PICFLOW 存储配置
PICFLOW 存储配置
PICFLOW 支持三种存储后端,通过统一的抽象层实现无缝切换。
存储抽象层 (storage.php)
三个核心函数:
// 上传文件
storage_upload(string $tmpPath, string $ext, int $userId): array
// 获取访问 URL
storage_get_url(string $path, string $driver): string
// 删除文件
storage_delete(string $path, string $driver): bool
用户存储偏好
每个用户可独立设置存储后端:
- 优先级:用户配置 > 站点默认配置
- 配置文件通过
get_user_storage_driver($userId)获取 - 管理员可在
/admin/storage.php配置默认和全局设置
本地存储
配置
无需额外配置,默认使用本地文件系统。
文件存放
uploads/
└── {timestamp}_{16-hex-chars}.{ext}
例如:uploads/1705314000_a1b2c3d4e5f6g7h8.jpg
URL 格式
https://your-domain.com/uploads/1705314000_a1b2c3d4e5f6g7h8.jpg
注意事项
- 确保
uploads/目录有写权限 - 禁止
uploads/目录执行 PHP - 建议配置 CDN 加速静态资源
阿里云 OSS
配置参数
| 参数 | 说明 |
|---|---|
| AccessKeyId | 阿里云 AccessKey |
| AccessKeySecret | 阿里云 AccessKey Secret |
| Bucket | OSS Bucket 名称 |
| Endpoint | OSS Endpoint(如 oss-cn-hangzhou.aliyuncs.com) |
| CustomDomain | 自定义域名(可选,用于 URL 生成) |
签名方式
使用 HMAC-SHA1 签名 REST API 请求。
URL 格式
# 默认域名
https://{bucket}.{endpoint}/{path}
# 自定义域名
https://{custom_domain}/{path}
腾讯云 COS
配置参数
| 参数 | 说明 |
|---|---|
| SecretId | 腾讯云 SecretId |
| SecretKey | 腾讯云 SecretKey |
| Bucket | COS Bucket 名称 |
| Region | 地域(如 ap-guangzhou) |
| CustomDomain | 自定义域名(可选) |
签名方式
使用 q-sign-algorithm=sha1 的 HMAC-SHA1 签名算法。
URL 格式
# 默认域名
https://{bucket}.cos.{region}.myqcloud.com/{path}
# 自定义域名
https://{custom_domain}/{path}
对比
| 特性 | 本地 | 阿里云 OSS | 腾讯云 COS |
|---|---|---|---|
| 成本 | 服务器磁盘成本 | 按量付费 | 按量付费 |
| 速度 | 取决于服务器带宽 | CDN 加速 | CDN 加速 |
| 可靠性 | 取决于备份策略 | 99.9999999999% | 99.9999999999% |
| 配置复杂度 | 无 | 中等 | 中等 |
| 适用场景 | 小规模/个人 | 生产环境 | 生产环境 |
迁移
在存储后端之间迁移数据:
- 从旧后端下载所有文件
- 上传到新后端
- 更新
images表中对应图片的storage_driver和file_path - 更新站点默认存储配置
📝 本文由AI生成