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 // 云直传
}
}