Skip to content

存储提供器配置

ChronoFrame 支持多种存储后端来保存您的照片和缩略图。本文档将详细介绍如何配置不同的存储提供器。

提供器支持适用场景成本
S3 兼容生产环境视服务商而定
GitHub🚧小规模,版本控制免费(有限制)
本地文件系统🚧测试环境,离线部署免费

S3 兼容存储

S3 兼容存储是最推荐的生产环境选项,支持所有主流云服务提供商。

基础配置

env
# 设置存储提供器为 S3
NUXT_STORAGE_PROVIDER=s3

# S3 基础配置
NUXT_PROVIDER_S3_ENDPOINT=https://your-s3-endpoint.com
NUXT_PROVIDER_S3_BUCKET=chronoframe-photos
NUXT_PROVIDER_S3_REGION=us-east-1
NUXT_PROVIDER_S3_ACCESS_KEY_ID=your-access-key-id
NUXT_PROVIDER_S3_SECRET_ACCESS_KEY=your-secret-access-key

# 可选配置
NUXT_PROVIDER_S3_PREFIX=photos/
NUXT_PROVIDER_S3_CDN_URL=https://cdn.example.com

云服务商配置示例

AWS S3

env
NUXT_STORAGE_PROVIDER=s3
NUXT_PROVIDER_S3_ENDPOINT=https://s3.amazonaws.com
NUXT_PROVIDER_S3_BUCKET=my-chronoframe-bucket
NUXT_PROVIDER_S3_REGION=us-east-1
NUXT_PROVIDER_S3_ACCESS_KEY_ID=AKIA...
NUXT_PROVIDER_S3_SECRET_ACCESS_KEY=...
NUXT_PROVIDER_S3_CDN_URL=https://d1234567890.cloudfront.net

Cloudflare R2

env
NUXT_STORAGE_PROVIDER=s3
NUXT_PROVIDER_S3_ENDPOINT=https://[account-id].r2.cloudflarestorage.com
NUXT_PROVIDER_S3_BUCKET=chronoframe
NUXT_PROVIDER_S3_REGION=auto
NUXT_PROVIDER_S3_ACCESS_KEY_ID=...
NUXT_PROVIDER_S3_SECRET_ACCESS_KEY=...
NUXT_PROVIDER_S3_CDN_URL=https://photos.example.com

阿里云 OSS

env
NUXT_STORAGE_PROVIDER=s3
NUXT_PROVIDER_S3_ENDPOINT=https://oss-cn-hangzhou.aliyuncs.com
NUXT_PROVIDER_S3_BUCKET=chronoframe-photos
NUXT_PROVIDER_S3_REGION=oss-cn-hangzhou
NUXT_PROVIDER_S3_ACCESS_KEY_ID=LTAI...
NUXT_PROVIDER_S3_SECRET_ACCESS_KEY=...
NUXT_PROVIDER_S3_CDN_URL=https://cdn.example.com

腾讯云 COS

env
NUXT_STORAGE_PROVIDER=s3
NUXT_PROVIDER_S3_ENDPOINT=https://cos.ap-beijing.myqcloud.com
NUXT_PROVIDER_S3_BUCKET=chronoframe-1234567890
NUXT_PROVIDER_S3_REGION=ap-beijing
NUXT_PROVIDER_S3_ACCESS_KEY_ID=AKID...
NUXT_PROVIDER_S3_SECRET_ACCESS_KEY=...

MinIO 自托管

env
NUXT_STORAGE_PROVIDER=s3
NUXT_PROVIDER_S3_ENDPOINT=https://minio.example.com
NUXT_PROVIDER_S3_BUCKET=chronoframe
NUXT_PROVIDER_S3_REGION=us-east-1
NUXT_PROVIDER_S3_ACCESS_KEY_ID=minioadmin
NUXT_PROVIDER_S3_SECRET_ACCESS_KEY=minioadmin

存储桶配置

CORS 设置

推荐的 CORS 配置:

json
[
  {
    "AllowedOrigins": ["https://your-domain.com"],
    "AllowedMethods": ["GET", "PUT", "POST", "DELETE"],
    "AllowedHeaders": ["*"],
    "ExposeHeaders": ["ETag"],
    "MaxAgeSeconds": 3000
  }
]

GitHub 存储(开发中)

GitHub 存储将照片存储在 Git 仓库中,适合小规模使用。

env
# 设置存储提供器为 GitHub(暂未实现)
NUXT_STORAGE_PROVIDER=github

# GitHub 存储配置
NUXT_PROVIDER_GITHUB_OWNER=your-username
NUXT_PROVIDER_GITHUB_REPOSITORY=chronoframe-photos
NUXT_PROVIDER_GITHUB_BRANCH=main
NUXT_PROVIDER_GITHUB_PATH=photos
NUXT_PROVIDER_GITHUB_TOKEN=ghp_...

本地文件系统(开发中)

本地存储将文件保存在服务器文件系统中。

env
# 设置存储提供器为本地(暂未实现)
NUXT_STORAGE_PROVIDER=local

# 本地存储配置
NUXT_PROVIDER_LOCAL_PATH=/app/storage
NUXT_PROVIDER_LOCAL_BASE_URL=https://your-domain.com/storage

常见问题

The AWS Access Key Id you provided does not exist in our records

访问密钥错误,检查 ACCESS_KEY_IDSECRET_ACCESS_KEY 是否正确。

The specified bucket does not exist

存储桶不存在,确认存储桶名称正确,且在指定区域存在

可以上传但无法访问图片,控制台提示 Access to fetch at '...' from origin '...' has been blocked by CORS policy

存储桶 CORS 配置错误,参考 CORS 设置 进行配置。

Released under the MIT License.