【问题标题】:Get Multiple Files From Blob Storage With Azure Function Bindings使用 Azure 函数绑定从 Blob 存储中获取多个文件
【发布时间】:2020-08-01 22:36:56
【问题描述】:

有没有办法在不事先知道文件或文件夹名称的情况下从 azure 函数绑定中获取多个文件? 对于不同的功能,我有这个:

 public async Task<Activity> GetActivity([ActivityTrigger] Activity activity,
     [Blob("activities/migration/{activity.Id}", FileAccess.Read)] Stream activityBlob,
     ILogger log)
 {

 }

这将根据活动类中的 id 从迁移文件夹中获取文件。

但是对于另一个功能,文件夹中的某些文件将有大量文件,其id不会提前知道。所以这不能作为参数传递来访问 blob。

我的问题是,这些绑定是否有“全部获取”或“递归获取”? 可以获取容器中的所有文件和文件夹的东西?

如果不是通过绑定,也许是通过代码?

【问题讨论】:

标签: c# azure azure-functions


【解决方案1】:

无法通过 blob 输入绑定,但您可以使用动态输入绑定从容器中获取所有文件。请参考以下代码:-

public async Task<Activity> Run(
            [ActivityTrigger] Activity activity,
            IBinder binder,
            ILogger log)
        {
            var blobs= await binder.BindAsync<IEnumerable<CloudBlockBlob>>(new BlobAttribute(blobPath: $"activities/migration")
            {
                Connection = "AzureWebJobsStorage"
            });
            
        }

这将为您提供容器中所有 blob 的列表,然后您可能可以继续进行操作,另一种方法是在代码中的容器引用上使用 ListBlobsSegmentedAsync 方法。

【讨论】:

    猜你喜欢
    • 2021-02-03
    • 2023-01-16
    • 2022-01-19
    • 2014-05-10
    • 2012-06-16
    • 2021-11-29
    • 2018-08-12
    • 2017-09-06
    • 2015-11-04
    相关资源
    最近更新 更多