using Dpz.Core.Infrastructure.PublicStruct;
using Dpz.Core.Shard.Service;
namespace Dpz.Core.Service.ObjectStorage.Services;
public interface ISafeFileService
{
/// <summary>
/// 上传文件
/// </summary>
/// <param name="stream">文件流</param>
/// <param name="path">文件夹路径</param>
/// <param name="filename">文件名</param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
Task<UploadResult> UploadAsync(
Stream stream,
ICollection<string> path,
string filename,
CancellationToken cancellationToken = default
);
/// <summary>
/// 断点续传
/// </summary>
/// <param name="file"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
Task<FileAddress?> UploadFileAsync(
CloudFile file,
CancellationToken cancellationToken = default
);
Task<Stream> DownloadAsync(string pathToFile, CancellationToken cancellationToken = default);
Task<FileAddress?> UploadFileForFtpAsync(
CloudFile file,
CancellationToken cancellationToken = default
);
}