Files
tiku-backend.net/Tiku.Application/Storage/IObjectStorageService.cs
2026-07-26 14:43:04 +08:00

26 lines
960 B
C#

namespace Tiku.Application.Storage;
public interface IObjectStorageService
{
string ConfiguredDefaultProvider();
string ConfiguredDefaultBucket();
string NormalizeProvider(string? value, string? fallback = null);
string ValidateObjectKey(Guid tenantId, string objectKey);
string ValidateMimeType(string mimeType);
long? ValidateFileSize(long? fileSizeBytes);
void AssertUploadProvider(string provider);
void AssertWritableLocation(StorageAssetLocation location);
Task<ObjectStorageSignedUrl> SignUploadAsync(
ObjectStorageUploadSignRequest request,
CancellationToken cancellationToken = default);
Task<ObjectStorageSignedUrl> SignDownloadAsync(
ObjectStorageDownloadSignRequest request,
CancellationToken cancellationToken = default);
Task<ObjectStorageMetadata> HeadObjectAsync(
ObjectStorageHeadRequest request,
CancellationToken cancellationToken = default);
}