minio 通过policy设置桶访问权限 public private

json参数可以通过minio web端手动设置为public或private并抓取网络请求参数获取

此处提供c#中的设置方法,其他语言可使用相同的参数

/// <summary>
/// 设置存储桶的访问权限
/// </summary>
/// <param name="minioClient"></param>
/// <param name="bucketName"></param>
/// <param name="isPublic"></param>
public static void SetAccessPolicy(MinioClient minioClient, string bucketName,bool isPublic = true)
{
    var publicPolicy =   $@"{{""Version"": ""2012-10-17"",""Statement"": [{{""Effect"": ""Allow"",""Principal"": {{""AWS"": [""*""]}},""Action"": [""s3:GetBucketLocation"",""s3:ListBucket"",""s3:ListBucketMultipartUploads""],""Resource"": [""arn:aws:s3:::{bucketName}""]}},{{""Effect"": ""Allow"",""Principal"": {{""AWS"": [""*""]}},""Action"": [""s3:AbortMultipartUpload"",""s3:DeleteObject"",""s3:GetObject"",""s3:ListMultipartUploadParts"",""s3:PutObject""],""Resource"": [""arn:aws:s3:::{bucketName}/*""]}}]}}";
    var privatePolicy =   $@"{{""Version"":""2012-10-17"",""Statement"":[]}}";
    var args = new SetPolicyArgs()
        .WithBucket(bucketName)
        .WithPolicy(isPublic? publicPolicy : privatePolicy);
    minioClient.SetPolicyAsync(args);
}
posted @ 2025-06-06 13:48  Hey,Coder!  阅读(700)  评论(0)    收藏  举报