using Model; using Model.Dto.System; using Model.Entity.System; using System.IO; using System.Threading.Tasks; namespace Service.Interface { /// /// 文件存储 Provider 抽象(Local 落地;MinIO/OSS 留扩展点) /// 实现类命名约定:XxxFileStorageProvider,由 DependencyInjection 手动注册到 IFileStorageProvider /// FileStorageService 通过 IEnumerable<IFileStorageProvider> 按配置 Provider 字段挑选实例 /// public interface IFileStorageProvider { /// Provider 标识(local/minio/oss),与 FileStorageConfigEntity.Provider 对应 string ProviderName { get; } /// 上传文件,返回存储后的文件名(含相对路径)、访问 URL、扩展名、大小 Task> UploadAsync(Stream stream, string originalName, long size, FileStorageConfigEntity config); /// 删除文件(按存储后的相对文件名) Task DeleteAsync(string storedFileName, FileStorageConfigEntity config); /// 测试连接/可用性(Local:检查目录可写;MinIO/OSS:检查 Bucket 可访问) Task TestConnectionAsync(FileStorageConfigEntity config); } }