Files
tiku-backend.net/Tiku.Application/Storage/IObjectStorageService.cs

30 lines
1.1 KiB
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<ObjectStorageWriteResult> WriteObjectAsync(
ObjectStorageWriteRequest request,
CancellationToken cancellationToken = default);
Task<ObjectStorageMetadata> HeadObjectAsync(
ObjectStorageHeadRequest request,
CancellationToken cancellationToken = default);
}