42 lines
1.3 KiB
C#
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);
|
|
}
|
|
|