【问题标题】:Storing a string in Azure blob storage and getting a reference to the blob with C#在 Azure Blob 存储中存储字符串并使用 C# 获取对 Blob 的引用
【发布时间】:2017-10-24 19:09:21
【问题描述】:

伙计们,

我有代码进行 API 调用、获取 JSON、解析它并将其存储在 SQL 表中。现在我想获取该 JSON 并将其保存在 Azure blob 存储中,然后将对它的引用保存在 SQL 表中作为单独的字段。

到目前为止,我得到了这个:

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吗?

【问题讨论】:

    标签: c# azure azure-storage azure-blob-storage


    【解决方案1】:

    每个 blob 都会有一个类似的 uri:

    https://<yourstorageaccountname>.blob.core.windows.net/containername/blobname
    

    这是您将存储在数据库中的内容。您甚至可以使用此 uri 在您的应用程序中直接向最终用户提供直接链接(例如,作为网页中的链接)。注意:对于在外部工作的直接链接(例如,没有存储帐户凭据),容器需要是公共的,或者您需要创建共享访问签名以允许临时公共访问,如果它在私有容器中.

    可以说,您可以只存储容器/blob 名称,但如果您有多个存储帐户,则需要知道将其存储在哪个帐户中。

    【讨论】:

    • 所以在上述情况下,URI 将是https://&lt;yourstorageaccountname&gt;.blob.core.windows.net/containername/blockBlob?
    • 如果 blob 名称是 blockBlob,那么是的。 blob 的类型未嵌入在 uri 中。如果 json 文件是 mydata.json,那么它将以 /containername/mydata.json 结尾。
    【解决方案2】:

    您的代码可以更改如下:

    CloudBlockBlob blockBlob = container.GetBlockBlobReference("datastring.json");
    

    您可以稍后使用相同的名称检索它,即 datastring.json,并且您可以在数据库中保存相同的 blob 名称。

    【讨论】:

      猜你喜欢
      • 2018-05-07
      • 1970-01-01
      • 2017-04-18
      • 2021-11-06
      • 1970-01-01
      • 2019-08-26
      • 2015-11-04
      • 1970-01-01
      • 2017-11-10
      相关资源
      最近更新 更多