Files
SeeyonFileSystem/server/storage/engine.go
2026-07-03 15:58:29 +08:00

38 lines
1.0 KiB
Go

// Package storage 提供文件存储引擎抽象层
// 通过接口解耦文件存储, 支持本地磁盘、MinIO、S3等多种后端
package storage
import (
"io"
)
// Engine 存储引擎接口
// 所有存储后端(local/minio/s3/oss)都必须实现此接口
type Engine interface {
// Upload 上传文件
// storageKey: 存储路径标识, reader: 文件内容流, size: 文件大小
// 返回实际的storageKey和错误
Upload(storageKey string, reader io.Reader, size int64) error
// Download 下载文件
// 返回文件内容流, 调用方负责关闭
Download(storageKey string) (io.ReadCloser, error)
// Delete 删除文件
Delete(storageKey string) error
// Exists 判断文件是否存在
Exists(storageKey string) (bool, error)
// GetURL 获取文件访问URL
// 本地存储返回相对路径, 对象存储返回完整URL
GetURL(storageKey string) string
}
// StorageResult 上传结果
type StorageResult struct {
StorageKey string // 存储标识
Size int64 // 文件大小
MD5 string // 文件MD5
}