diff --git a/Infrastructure/CloudSdk/minio/MinioService.cs b/Infrastructure/CloudSdk/minio/MinioService.cs index b89021f..f979bbc 100644 --- a/Infrastructure/CloudSdk/minio/MinioService.cs +++ b/Infrastructure/CloudSdk/minio/MinioService.cs @@ -1,4 +1,5 @@ -using Microsoft.AspNetCore.Http; +using Infrastructure.Helpers; +using Microsoft.AspNetCore.Http; using Microsoft.Extensions.Configuration; using Minio; using Minio.DataModel; @@ -53,6 +54,21 @@ public class MinioService } } + public async Task GetMetaObject(string objectName, string bucketName) + { + if (string.IsNullOrEmpty(bucketName)) + { + bucketName = _bucketName; + } + + var statArgs = new StatObjectArgs() + .WithBucket(bucketName) + .WithObject(objectName); + var meta = await _minioClient.StatObjectAsync(statArgs); + var md5 = meta.MetaData["md5"]; + return md5; // + } + public async Task EnsureBucketExistsAsync(string bucketName) { var existsArgs = new BucketExistsArgs().WithBucket(bucketName); @@ -165,11 +181,18 @@ public class MinioService using var stream = new MemoryStream(); await file.CopyToAsync(stream); stream.Position = 0; + var md5 = Md5.CalculateStreamMd5(stream); + stream.Position = 0; var putArgs = new PutObjectArgs() .WithBucket(bucketName) .WithObject(objectName) .WithStreamData(stream) .WithObjectSize(stream.Length) + .WithHeaders(new Dictionary() + { + //x-amz-meta-md5 + ["X-Amz-Meta-Md5"] = md5 + }) .WithContentType("application/octet-stream"); //.WithContentType(file.ContentType); await _minioClient.PutObjectAsync(putArgs);