using IM_API.Dtos; using IM_API.Models.Upload; using IM_API.VOs; namespace IM_API.Interface.Services { public interface IStorageService { string ProviderName { get; } UploadMode Mode { get; } /// /// 初始化上传任务 /// /// /// Task InitTaskAsync(CreateUploadTaskDto dto); /// /// 创建分片任务 /// /// 文件上传任务ID /// /// Task CreatePartInstructionAsync(Guid taskId, int partNumer); Task CompleteAsync( Guid taskId, List parts ); Task MergeAsync(Guid taskId, string objectName, int totalChunks, List parts); Task UploadSmallFileAsync(Stream stream, string fileName, string fileType, long size, string hash); string GetDownloadUrl(string objectname); } public enum UploadMode { Proxy, // 本地 / 后端中转 Direct // 云直传 } }