gpt4 book ai didi

asp.net-mvc - 访问已登录用户的 Azure Blob 存储

转载 作者:行者123 更新时间:2023-12-02 08:06:54 25 4
gpt4 key购买 nike

我有一个 MVC 应用程序,其中用户列表可以将文件上传到 GoogleDrive/DropBox,为此他们只需要对自己进行身份验证,相应的 api 提供“AccessToken”或进一步用于将文件上传到用户帐户的内容来 self 的网络应用程序。

现在我需要对 Azure Blob 存储执行同样的操作。为了进行测试,我在那里创建了一个帐户,并使用 Accountname 和 Accountkey 创建了一个连接字符串,其作用如下:

public void UploadFileToBlob1(string fileName, byte[] fileData)
{
// Retrieve storage account from connection string.
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(System.Configuration.ConfigurationManager.AppSettings["StorageConnectionString"]);

// Create the blob client.
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();

// Retrieve reference to a previously created container.
CloudBlobContainer container = blobClient.GetContainerReference("portalcontainer");
container.CreateIfNotExists();

// Retrieve reference to a blob named "myblob".
CloudBlockBlob blockBlob = container.GetBlockBlobReference(fileName);

// Create or overwrite the "myblob" blob with contents from a local file.
Stream stream = new MemoryStream(fileData);
blockBlob.UploadFromStream(stream);
}

现在我想让登录我的应用程序的用户也可以这样做。

因此,在 Azure Blob 存储的情况下,我可以做些什么来对 Blob 存储帐户上的登录用户进行身份验证,并获取“访问 token ”或其他内容来在用户 Blob 容器上执行文件上传/下载。

请指教

最佳答案

当前不支持用户特定的基于 token 的 Azure 存储访问。

但是我想提出一种替代方法。看看这是否有意义(这本质上是对上面赵兴评论的扩展)。

对于应用程序的每个用户,您要做的就是创建一个 blob 容器(一种主目录)。当用户登录时,可以创建Shared Access Signature (SAS)为该容器提供适当的权限。因此,用户将能够访问该容器中的资源。由于 SAS 是为特定容器创建的,因此用户使用该 SAS token 访问另一个容器的任何尝试都将导致错误。

关于asp.net-mvc - 访问已登录用户的 Azure Blob 存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39033354/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com