Tinyship
Tinyship
 Tinyship
Tinyship
TinyShip 文档中心
TinyShip 用户指南快速开始基础配置
积分系统配置指南
存储服务配置验证码配置
用户指南

存储服务配置

配置文件存储服务

TinyShip 提供了统一的云存储服务,支持多个主流云存储服务商,让您轻松管理文件上传、下载和访问。

相关页面

页面路径说明
上传示例页/upload文件上传示例页面

支持的存储服务商

服务商优势推荐场景
阿里云 OSS中国区域访问快,与阿里云生态集成面向中国用户的应用
AWS S3全球覆盖,生态成熟,功能丰富面向国际用户的应用
Cloudflare R2无出口流量费用,性价比高,边缘分发注重成本控制的应用

所有服务商都支持以下功能:

  • ✅ 文件上传/下载
  • ✅ 签名 URL 生成
  • ✅ 文件删除
  • ✅ 文件存在检查
  • ✅ 元数据检索
  • ✅ 目录列表

在 config/storage.ts 中配置

// config/storage.ts
export const storageConfig = {
  defaultProvider: 'oss' as const,  // 默认服务商: 'oss' | 's3' | 'r2'
  
  oss: {
    region: 'oss-cn-shanghai',
    accessKeyId: '...',
    accessKeySecret: '...',
    bucket: 'your-bucket',
    endpoint: '',  // 可选:自定义端点
    defaultExpiration: 60
  },
  
  s3: {
    region: 'us-east-1',
    accessKeyId: '...',
    accessKeySecret: '...',
    bucket: 'your-bucket',
    endpoint: '',  // 可选:S3 兼容服务的自定义端点
    forcePathStyle: false,
    defaultExpiration: 3600
  },
  
  r2: {
    accountId: '...',
    accessKeyId: '...',
    accessKeySecret: '...',
    bucket: 'your-bucket',
    defaultExpiration: 3600
  }
}

配置选项说明:

  • defaultProvider: 默认使用的存储服务商
  • defaultExpiration: 签名 URL 的默认过期时间(秒)
  • forcePathStyle: S3 兼容服务可能需要设置为 true

环境变量配置

在 .env 文件中添加对应服务商的配置:

# 选择默认存储服务商
STORAGE_PROVIDER=oss  # 可选:oss, s3, r2

# 阿里云 OSS 配置
OSS_REGION=oss-cn-shanghai
OSS_ACCESS_KEY_ID=your_access_key_id
OSS_ACCESS_KEY_SECRET=your_access_key_secret
OSS_BUCKET=your-bucket-name

# AWS S3 配置
S3_REGION=us-east-1
S3_ACCESS_KEY_ID=your_access_key_id
S3_ACCESS_KEY_SECRET=your_secret_access_key
S3_BUCKET=your-bucket-name

# Cloudflare R2 配置
R2_ACCOUNT_ID=your_cloudflare_account_id
R2_ACCESS_KEY_ID=your_r2_access_key_id
R2_ACCESS_KEY_SECRET=your_r2_access_key_secret
R2_BUCKET=your-bucket-name

注意:OSS 的 Access Key 可以复用阿里云通用的 ALIYUN_ACCESS_KEY_ID 和 ALIYUN_ACCESS_KEY_SECRET,如果未单独配置 OSS 专用的 Key,系统会自动回退使用通用 Key。

使用方法

基本使用

import { storage } from '@libs/storage';

// 上传文件(使用默认服务商)
const result = await storage.uploadFile({
  file: fileBuffer,
  fileName: 'document.pdf',
  contentType: 'application/pdf',
  folder: 'uploads/2024'
});

// 生成签名下载 URL
const { url } = await storage.generateSignedUrl({
  key: result.key,
  expiresIn: 3600
});

使用指定服务商

import { createStorageProvider } from '@libs/storage';

// 创建指定服务商实例
const s3Storage = createStorageProvider('s3');
const ossStorage = createStorageProvider('oss');
const r2Storage = createStorageProvider('r2');

// 上传到 S3
await s3Storage.uploadFile({
  file: buffer,
  fileName: 'file.zip'
});

详细的 API 文档和更多示例请参考:libs/storage/README.md

AI 图片生成配置

配置 AI 图片生成功能

验证码配置

配置人机验证功能

On this page

相关页面支持的存储服务商在 config/storage.ts 中配置环境变量配置使用方法基本使用使用指定服务商