Очистка удаленных
This commit is contained in:
@@ -149,4 +149,38 @@ public class S3FileStorageService : IFileStorageService
|
||||
|
||||
return (msResult, contentType, fileName);
|
||||
}
|
||||
|
||||
public async Task DeleteFileAsync(string fileId)
|
||||
{
|
||||
try
|
||||
{
|
||||
var removeArgs = new RemoveObjectArgs()
|
||||
.WithBucket(_bucketName)
|
||||
.WithObject(fileId);
|
||||
await _minioClient.RemoveObjectAsync(removeArgs).ConfigureAwait(false);
|
||||
}
|
||||
catch (MinioException e)
|
||||
{
|
||||
Console.WriteLine($"[Bucket] Error deleting file {fileId}: {e.Message}");
|
||||
}
|
||||
}
|
||||
|
||||
public async Task<IEnumerable<(string FileId, long Size)>> ListFilesAsync()
|
||||
{
|
||||
var result = new List<(string FileId, long Size)>();
|
||||
try
|
||||
{
|
||||
var listArgs = new ListObjectsArgs().WithBucket(_bucketName).WithRecursive(true);
|
||||
|
||||
await foreach (var item in _minioClient.ListObjectsEnumAsync(listArgs).ConfigureAwait(false))
|
||||
{
|
||||
result.Add((item.Key, (long)item.Size));
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Console.WriteLine($"[Bucket] Error listing files: {ex.Message}");
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,4 +10,10 @@ public interface IFileStorageService
|
||||
|
||||
// Скачивает файл и возвращает его расшифрованный поток и тип содержимого.
|
||||
Task<(Stream Stream, string ContentType, string FileName)> DownloadFileAsync(string fileId);
|
||||
|
||||
// Удаляет файл из хранилища.
|
||||
Task DeleteFileAsync(string fileId);
|
||||
|
||||
// Получает список всех файлов в хранилище с их размерами.
|
||||
Task<System.Collections.Generic.IEnumerable<(string FileId, long Size)>> ListFilesAsync();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user