web-dev-qa-db-ja.com

C#コアのAzure Blobストレージからすべてのファイルを読む方法

Azure Blob Storage(フォルダ内のファイル)からファイルを読みたい場合は、BLOBストレージには多くのフォルダが含まれています。私は自分のフォルダ 'blobstorage'を読みたい、それは各ファイルといくつかの操作を実行する多くのJSONファイルを含みます。私は機能しなかった多くのコードを試しました:

 CloudStorageAccount storageAccount = CloudStorageAccount.Parse(connectionString);
            CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
            CloudBlobContainer container = blobClient.GetContainerReference($"blobstorage");
 _

上記のコードでは、 'Microsoft.windowsazure.storage' nugetパッケージを使用しています。このコードは予想どおりに機能していません。スタックオーバーフローで発見された多くの質問と回答で、私はそれらのほとんどが古くなっていないことがわかりました。注:NUGETがそれを言及している場合は、BCSも多くのパッケージです。

2
RaZiQ PS

_Microsoft.WindowsAzure.Storage_パッケージを使用してすべてのBLOBをリストするオプションはありません。 _Azure.Storage.Blobs_パッケージを使用できる場合は、下のコードを試してください。

_using Azure.Storage.Blobs;
using Azure.Storage.Blobs.Models;
using System;

namespace ConsoleApp2
{
    class Program
    {
        static string connectionString = "DefaultEndpointsProtocol=https;AccountName=storage******c9709;AccountKey=v**************************************;EndpointSuffix=core.windows.net";
        static string container = "Azure-webjobs-hosts";
        static void Main(string[] args)
        {
            // Get a reference to a container named "sample-container" and then create it
            BlobContainerClient blobContainerClient = new BlobContainerClient(connectionString, container);
            blobContainerClient.CreateIfNotExists();
            Console.WriteLine("Listing blobs...");
            // List all blobs in the container
            var blobs = blobContainerClient.GetBlobs();
            foreach (BlobItem blobItem in blobs)
            {
                Console.WriteLine("\t" + blobItem.Name);
            }            
            Console.Read();
        }
    }
}
_

出力

enter image description here

BLOBの内容をダウンロードすることもできます. link

0
Pankaj Rawat