Windows Universal App – 从Azure容器下载所有Blob
我有一个通用Windows应用程序。
我试图在应用程序启动时从azure容器中下载所有blob。 这是我的代码:
public MainPage() { this.InitializeComponent(); downloadblobs(); } public async void downloadblobs() { CloudStorageAccount storageaccount = new CloudStorageAccount(new StorageCredentials("accountname", "accountkey"), true); CloudBlobClient blobClient = storageaccount.CreateCloudBlobClient(); CloudBlobContainer container = blobClient.GetContainerReference("ContainerName"); //--------------------- int fileName = 1; var client = storageaccount.CreateCloudBlobClient(); BlobContinuationToken continuationToken = null; string prefix = null; bool useFlatBlobListing = true; BlobListingDetails blobListingDetails = BlobListingDetails.All; int maxBlobsPerRequest = 2500; List blobs = new List(); do { var listingResult = await container.ListBlobsSegmentedAsync(prefix, useFlatBlobListing, blobListingDetails, maxBlobsPerRequest, continuationToken, null, null); continuationToken = listingResult.ContinuationToken; blobs.AddRange(listingResult.Results); using (var fileStream = System.IO.File.OpenWrite(@"\NewImages\" + fileName + ".jpg")) { var blobReference = blobClient.GetBlobReferenceFromServerAsync(blobs.Uri); File downloadedFile = new File(blobReference + ".jpg"); fileName++; } } while (continuationToken != null); }
我在两行上得到错误:
var blobReference = blobClient.GetBlobReferenceFromServerAsync(blobs.Uri); File downloadedFile = new File(blobReference + ".jpg");
我的错误是:
ListBlobItem不包含Uri的定义。
无法声明静态类型File的变量。
和
无法创建静态类文件的实例。
您需要使用container.listBlobsSegmentedAsync()
枚举容器中的blob。 容器引用不仅具有随其自动下载的blob列表。
供参考,请参见此处 。
- C#LINQ。没有使用DocumentDb CreateDocumentQuery
- 以编程方式在Microsoft Azure Web应用程序中访问性能计数器
- 具有Http触发函数的连续Azure WebJob
- DocumentDB TransientFaultHandling最佳实践
- 使用RequireHttpsAttribute ASP.NET Core的HTTP错误310 ERR_TOO_MANY_REDIRECTS
- 如何使用Azure Table Storage的单个查询检索多种类型的实体?
- 在Azure Service Bus中并行处理消息
- 为什么BrokeredMessage.RenewLock()只更新锁几秒钟?
- 从代码(c#)部署Azurefunction