将二进制大对象上载到Azure并给予公共读访问权限C#

pxyaymoc  于 2022-11-17  发布在  C#
关注(0)|答案(1)|浏览(107)

我正在尝试将图像上载到Azure Blob存储以便稍后在我的应用程序中查看。但是,当我上载图像时,我无法使用Blob的链接查看图像,因为我认为文件查看权限设置不正确。但是,我不知道如何在代码中设置这些权限。
我发现一个问题的答案是类似的,但它是如此过时,它不像这样的工作了。
Link of the old similar question)(英文)
在下面的代码块中,你可以找到我的一段代码,它创建了一个容器(如果它不存在=〉创建一个),无论它是否存在,它都应该被设置为任何人都可以读取/查看上传的blob。

public async Task<BlobContainerClient> CreateContainerAsync(string containerName, CancellationToken cancellationToken = default)
    {
        if (string.IsNullOrWhiteSpace(containerName))
            throw new ArgumentException($"'{nameof(containerName)}' cannot be null or whitespace.", nameof(containerName));

        var container = new BlobContainerClient(_connectionString, containerName);
         //Here I want to set the access policy but I'm not sure on how to implement it
        //await container.SetAccessPolicyAsync(PublicAccess = Azure.Storage.Blobs.Models.PublicAccessType.Blob);

        await container.CreateIfNotExistsAsync(cancellationToken: cancellationToken);
        return container;
    }

提前感谢您的任何提示!

sdnqo3pr

sdnqo3pr1#

按要求^^
CreateIfNotExistsAsync有多载,可让您传递BlobContainerPublicAccessType
此枚举使您能够指定所创建容器的访问类型。
或者,您也可以通过Azure进行调整,如果您的容器已经创建,并且您具有所需的访问权限(通过访问控制(IAM)检查),方法是导航到容器,然后按以下按钮:

您将看到它提供的选项将直接Map到BlobContainerPublicAccessType

相关问题