在 Azure blob 存储中存储字符串并使用 C# 获取对 blob 的引用
Storing a string in Azure blob storage and getting a reference to the blob with C#
伙计们,
我有代码进行 API 调用,返回 JSON,解析它并将其存储在 SQL table 中。现在我想把那个 JSON 也保存在 Azure blob 存储中,然后在 SQL table 中保存对它的引用作为一个单独的字段。
到目前为止,我得到了这个:
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(
CloudConfigurationManager.GetSetting("MyConnectionString"));
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
CloudBlobContainer container = blobClient.GetContainerReference("mydata");
CloudBlockBlob blockBlob = container.GetBlockBlobReference(dataString);
blockBlob.UploadTextAsync(resultContent);
我可以将什么保存为参考字符串,以便将来检索 blob?是 blockBlob 吗?
您的代码可以更改如下:
CloudBlockBlob blockBlob = container.GetBlockBlobReference("datastring.json");
您稍后可以使用相同的名称检索它,即 datastring.json,并且您可以在数据库中保存相同的 blob 名称。
每个 blob 都会有一个类似这样的 uri:
https://<yourstorageaccountname>.blob.core.windows.net/containername/blobname
这就是您要存储在数据库中的内容。您甚至可以使用此 uri 在您的应用程序中直接向最终用户提供直接 link(例如,作为网页中的 link)。注意:要使直接 link 在外部工作(例如,没有存储帐户凭据),容器需要 public,或者您需要创建共享访问签名以允许临时 public 访问,如果它在私有容器中。
可以说,您可以只存储 container/blob 名称,但是,如果您有多个存储帐户,则需要知道将其存储在哪个帐户中。
伙计们,
我有代码进行 API 调用,返回 JSON,解析它并将其存储在 SQL table 中。现在我想把那个 JSON 也保存在 Azure blob 存储中,然后在 SQL table 中保存对它的引用作为一个单独的字段。
到目前为止,我得到了这个:
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(
CloudConfigurationManager.GetSetting("MyConnectionString"));
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
CloudBlobContainer container = blobClient.GetContainerReference("mydata");
CloudBlockBlob blockBlob = container.GetBlockBlobReference(dataString);
blockBlob.UploadTextAsync(resultContent);
我可以将什么保存为参考字符串,以便将来检索 blob?是 blockBlob 吗?
您的代码可以更改如下:
CloudBlockBlob blockBlob = container.GetBlockBlobReference("datastring.json");
您稍后可以使用相同的名称检索它,即 datastring.json,并且您可以在数据库中保存相同的 blob 名称。
每个 blob 都会有一个类似这样的 uri:
https://<yourstorageaccountname>.blob.core.windows.net/containername/blobname
这就是您要存储在数据库中的内容。您甚至可以使用此 uri 在您的应用程序中直接向最终用户提供直接 link(例如,作为网页中的 link)。注意:要使直接 link 在外部工作(例如,没有存储帐户凭据),容器需要 public,或者您需要创建共享访问签名以允许临时 public 访问,如果它在私有容器中。
可以说,您可以只存储 container/blob 名称,但是,如果您有多个存储帐户,则需要知道将其存储在哪个帐户中。