API 文档

CloudStorage API 完整文档,包含所有端点说明、参数详情和代码示例

快速开始

通过以下步骤快速了解如何使用 CloudStorage API

1

获取 API 基础地址

CloudStorage API 的基础地址

http://localhost:3000/api
2

上传文件

使用 POST 请求上传文件

curl -X POST \
  http://localhost:3000/api/files/upload \
  -F "file=@example.txt"
3

获取文件列表

使用 GET 请求获取所有文件

curl -X GET \
  http://localhost:3000/api/files/upload
4

下载文件

使用文件 ID 下载文件

curl -X GET \
  http://localhost:3000/api/files/download/{fileId} \
  -o downloaded-file.txt

需要更多帮助?

查看完整的 API 文档和更多代码示例

API 端点

CloudStorage 提供的所有 API 端点详细说明

POST

/api/files/upload

上传文件到云存储

参数

file
File
必需

要上传的文件

响应

200
文件上传成功
{
  "success": true,
  "fileId": "abc123",
  "filename": "example.txt",
  "size": 1024,
  "uploadedAt": "2024-01-01T00:00:00Z"
}
400
上传失败
{
  "success": false,
  "error": "No file provided"
}
GET

/api/files/upload

获取所有已上传的文件列表

响应

200
成功获取文件列表
{
  "success": true,
  "files": [
    {
      "id": "abc123",
      "filename": "example.txt",
      "size": 1024,
      "uploadedAt": "2024-01-01T00:00:00Z"
    }
  ]
}
500
服务器错误
{
  "success": false,
  "error": "Internal server error"
}
GET

/api/files/download/{fileId}

下载指定的文件

参数

fileId
string
必需

文件的唯一标识符

响应

200
文件下载成功
Binary file content with proper headers
404
文件未找到
{
  "success": false,
  "error": "File not found"
}
DELETE

/api/files/{fileId}

删除指定的文件

参数

fileId
string
必需

要删除文件的唯一标识符

响应

200
文件删除成功
{
  "success": true,
  "message": "File deleted successfully"
}
404
文件未找到
{
  "success": false,
  "error": "File not found"
}

代码示例

多种编程语言的完整调用示例

cURL
命令行工具
# 上传文件
curl -X POST \
  http://localhost:3000/api/files/upload \
  -F "file=@example.txt" \
  -H "Content-Type: multipart/form-data"

# 响应示例
{
  "success": true,
  "fileId": "abc123",
  "filename": "example.txt",
  "size": 1024,
  "uploadedAt": "2024-01-01T00:00:00Z"
}

系统特性

安全可靠

支持多种存储后端,数据安全有保障

  • 支持本地存储、Supabase、PocketBase
  • 文件上传进度实时跟踪
  • 完整的错误处理机制
  • 文件元数据完整保存

高性能

优化的文件处理和传输机制

  • 流式文件上传
  • 并发请求支持
  • 智能缓存策略
  • 压缩传输优化

易于集成

RESTful API 设计,支持多种编程语言

  • 标准 HTTP 协议
  • JSON 格式响应
  • 详细的错误码说明
  • 完整的 API 文档

HTTP 状态码

API 响应状态码说明

了解不同状态码的含义,便于错误处理和调试

200
OK

请求成功

400
Bad Request

请求参数错误或缺失

404
Not Found

请求的资源不存在

413
Payload Too Large

上传文件过大

415
Unsupported Media Type

不支持的文件类型

500
Internal Server Error

服务器内部错误

最佳实践

请求超时处理

建议设置合理的请求超时时间,特别是对于大文件上传

// JavaScript 示例
const controller = new AbortController();
const timeoutId = setTimeout(() => controller.abort(), 30000); // 30秒超时

fetch('/api/files/upload', {
  method: 'POST',
  body: formData,
  signal: controller.signal
}).finally(() => {
  clearTimeout(timeoutId);
});

错误重试机制

实现指数退避的重试策略,提高上传成功率

// Python 示例
import time
import requests
from requests.adapters import HTTPAdapter
from urllib3.util.retry import Retry

session = requests.Session()
retry_strategy = Retry(
    total=3,
    backoff_factor=1,
    status_forcelist=[429, 500, 502, 503, 504]
)
adapter = HTTPAdapter(max_retries=retry_strategy)
session.mount("http://", adapter)
session.mount("https://", adapter)

文件大小限制

在客户端预先检查文件大小,避免无效请求

// JavaScript 示例
const MAX_FILE_SIZE = 10 * 1024 * 1024; // 10MB

function validateFile(file) {
  if (file.size > MAX_FILE_SIZE) {
    throw new Error('文件大小不能超过 10MB');
  }
  
  const allowedTypes = ['image/jpeg', 'image/png', 'text/plain'];
  if (!allowedTypes.includes(file.type)) {
    throw new Error('不支持的文件类型');
  }
  
  return true;
}

安全考虑

实施适当的安全措施保护您的 API

// 安全建议
1. 使用 HTTPS 加密传输
2. 实施速率限制防止滥用
3. 验证文件类型和内容
4. 设置合理的文件大小限制
5. 记录和监控 API 使用情况
6. 定期清理过期文件

需要技术支持?

如果您在使用过程中遇到问题,或需要更多技术支持,请随时联系我

📧 邮箱支持:hnkong666@gmail.com