1. minio添加元数据md5获取

2. minio对象上传添加md5元数据头
feature-flyModify
陈伟 2025-06-17 10:15:05 +08:00
parent c0af24c7fd
commit 6f9566f4d1
1 changed files with 24 additions and 1 deletions

View File

@ -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<string> 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<string, string>()
{
//x-amz-meta-md5
["X-Amz-Meta-Md5"] = md5
})
.WithContentType("application/octet-stream");
//.WithContentType(file.ContentType);
await _minioClient.PutObjectAsync(putArgs);