繁体   English   中英

如何绑定到容器以遍历Blob

[英]how to bind to a container in order to iterate through blobs

是否可以遍历容器内部的斑点?

目前,我添加了以下属性:

[Blob("%MyFunc:InputContainer%")]CloudBlobContainer inputContainer

但是,我没有找到有关如何遍历inputContainer内的blob的任何文档。

下面是为此的基本示例。

 #r "Microsoft.WindowsAzure.Storage" using System; using Microsoft.WindowsAzure.Storage.Blob; using Microsoft.Extensions.Logging; public static void Run(Stream myBlob, CloudBlobContainer container,ILogger log) { log.LogInformation($"Container name: {container.Name}"); var blob= container.GetBlockBlobReference("Bill.pdf"); log.LogInformation($"Blob size: {blob.StreamWriteSizeInBytes}"); log.LogInformation($"C# Blob trigger function processed {myBlob}"); } 

function.json

 { "bindings": [ { "connection": "AzureWebJobsStorage", "path": "samples-workitems/{name}", "name": "myBlob", "type": "blobTrigger", "direction": "in" }, { "name": "container", "type": "blob", "path": "output-images", "connection": "AzureWebJobsStorage", "direction": "in" } ], "disabled": false } 

function.Proj

 <Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <TargetFramework>netstandard2.0</TargetFramework> </PropertyGroup> <ItemGroup> <PackageReference Include="WindowsAzure.Storage" Version="9.3.3"/> <PackageReference Include="Newtonsoft.Json" Version="11.0.2"/> </ItemGroup> 

您应该可以使用inputContainer.ListBlobsSegmentedAsync()

BlobResultSegment blobResultSegment = await container.ListBlobsSegmentedAsync(null);

// Iterate each blob
foreach (IListBlobItem item in blobResultSegment.Results)
{
    // cast item to CloudBlockBlob
    CloudBlockBlob blob = (CloudBlockBlob)item;
}

您可以使用ListBlobsSegmentedAsync来获取Blob。 我将容器与此绑定: [Blob("firstcontainer")]CloudBlobContainer inputContainer

并使用以下代码获取Blob列表:

            BlobContinuationToken blobContinuationToken = null;
            var results = await inputContainer.ListBlobsSegmentedAsync(null, blobContinuationToken);

            foreach (IListBlobItem item in results.Results)
            {
                log.LogInformation(item.Uri.Segments.Last());
            }

这是我的测试结果,您可以尝试一下。 /的Blob名称表示它是目录

在此处输入图片说明

希望这可以对您有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM