You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
52 lines
1.6 KiB
52 lines
1.6 KiB
using System;
|
|
using System.Collections.Generic;
|
|
using System.IO;
|
|
using System.Linq;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace CoviDok.BLL.Storage
|
|
{
|
|
class StorageHandler
|
|
{
|
|
private readonly IStorageProvider storageProvider;
|
|
|
|
public StorageHandler(IStorageProvider provider)
|
|
{
|
|
//Client = new MinioClient(
|
|
//"192.168.0.160:9000",
|
|
//"secretaccesskey",
|
|
//"secretsecretkey");
|
|
storageProvider = provider;
|
|
}
|
|
|
|
public async Task<StorageResult> UploadImage(string BucketName, Stream FilePath, long size, string ObjectName)
|
|
{
|
|
try
|
|
{
|
|
// Make a bucket on the server, if not already present.
|
|
bool found = await storageProvider.NamespaceExists(BucketName);
|
|
if (!found)
|
|
{
|
|
await storageProvider.CreateNamespace(BucketName);
|
|
}
|
|
// Upload a file to bucket.
|
|
await storageProvider.Upload(BucketName, ObjectName, FilePath, size);
|
|
return new StorageResult(true, ObjectName);
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
return new StorageResult(false, e.Message);
|
|
}
|
|
}
|
|
|
|
public async Task GetImage(string bucketName, string ImageId, Action<Stream> callback)
|
|
{
|
|
await storageProvider.Download(bucketName, ImageId, callback);
|
|
}
|
|
|
|
public async Task<bool> ImageExists(string bucketName, string ImageId)
|
|
{
|
|
return await storageProvider.ObjectExists(bucketName, ImageId);
|
|
}
|
|
}
|
|
}
|
|
|