feat: finalize core modules and gateway
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using TakeoutSaaS.Module.Storage.Models;
|
||||
|
||||
namespace TakeoutSaaS.Module.Storage.Abstractions;
|
||||
|
||||
/// <summary>
|
||||
/// 对象存储提供商统一抽象。
|
||||
/// </summary>
|
||||
public interface IObjectStorageProvider
|
||||
{
|
||||
/// <summary>
|
||||
/// 当前提供商类型。
|
||||
/// </summary>
|
||||
StorageProviderKind Kind { get; }
|
||||
|
||||
/// <summary>
|
||||
/// 上传文件到对象存储。
|
||||
/// </summary>
|
||||
Task<StorageUploadResult> UploadAsync(StorageUploadRequest request, CancellationToken cancellationToken = default);
|
||||
|
||||
/// <summary>
|
||||
/// 生成预签名直传参数(PUT 或表单直传)。
|
||||
/// </summary>
|
||||
Task<StorageDirectUploadResult> CreateDirectUploadAsync(StorageDirectUploadRequest request, CancellationToken cancellationToken = default);
|
||||
|
||||
/// <summary>
|
||||
/// 生成带过期时间的访问链接。
|
||||
/// </summary>
|
||||
Task<string> GenerateDownloadUrlAsync(string objectKey, TimeSpan expires, CancellationToken cancellationToken = default);
|
||||
|
||||
/// <summary>
|
||||
/// 生成公共访问地址(可结合 CDN)。
|
||||
/// </summary>
|
||||
string BuildPublicUrl(string objectKey);
|
||||
}
|
||||
Reference in New Issue
Block a user