forked from xiongyuxing/tiku-backend.net
26 lines
960 B
C#
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);
|
|
}
|