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