HtmlToPdf/mvp/HtmlToPdfService.Core/Storage/IFileStorage.cs
2025-12-11 23:35:52 +08:00

42 lines
1.3 KiB
C#

namespace HtmlToPdfService.Core.Storage;
/// <summary>
/// 文件存储接口
/// </summary>
public interface IFileStorage
{
/// <summary>
/// 保存 PDF 文件
/// </summary>
/// <param name="requestId">请求 ID</param>
/// <param name="pdfData">PDF 数据</param>
/// <param name="cancellationToken">取消令牌</param>
/// <returns>文件路径和下载 URL</returns>
Task<(string FilePath, string DownloadUrl)> SaveAsync(
string requestId,
byte[] pdfData,
CancellationToken cancellationToken = default);
/// <summary>
/// 获取文件
/// </summary>
/// <param name="requestId">请求 ID</param>
/// <param name="cancellationToken">取消令牌</param>
/// <returns>PDF 数据,如果不存在则返回 null</returns>
Task<byte[]?> GetAsync(string requestId, CancellationToken cancellationToken = default);
/// <summary>
/// 删除文件
/// </summary>
/// <param name="requestId">请求 ID</param>
/// <param name="cancellationToken">取消令牌</param>
Task DeleteAsync(string requestId, CancellationToken cancellationToken = default);
/// <summary>
/// 清理过期文件
/// </summary>
/// <param name="cancellationToken">取消令牌</param>
Task CleanupExpiredFilesAsync(CancellationToken cancellationToken = default);
}