Azure函数blobtrigger不应在子文件夹上触发



我创建了一个blobtrigger,每当我上传到容器时,它就会运行。但由于我将使用kraken来处理图像,然后将处理后的图像重新放置在原始图像的子文件夹中。

我不知道如何确保我不会触发海怪将图像上传到容器。。

文件夹设置

  • 文件夹名称
    • 文件.jpg
    • 文件.jpg

海怪上传到文件夹(海怪文件夹(

  • 文件夹名

    • 文件.jpg
    • 文件.jpg

    • krakenfolder

      • krakenprocessedimage.jpg
      • krakenprocessedimage.jpg

当前我的blobtrigger也会在子文件夹上触发。。如何检查或阻止它这样做?

我的blobtrigger目前是

[FunctionName("ProductBlobDispatch")]
public static async void Run(
[BlobTrigger("products/{name}")]
Stream myBlob,
string name,
ILogger log,
string blobTrigger,
[Queue("scanpipe-media-dispatch")] IAsyncCollector<MediaDispatchModel> imageProcessor)
{
log.LogInformation($"Blob trigger on product upload, processed blobn Name: {name}n Size: {myBlob.Length} Bytes");
//convert stream to model.
var model = new ImageProcessingModel()
{
Url = "/"+name,
IsProduct = true,
IsDeleted = false,
};
await imageProcessor.AddAsync(model);
}

由于blob存储没有"物理"文件夹,因此没有办法。name中的所有内容都是同一平面结构中blob的一部分。即使名称是my/first/level/virtual/folder/text.txt

所以你必须在你的代码中过滤掉它,或者使用容器作为你的"文件夹"。

需要补充的是:过滤功能有限,但这些功能似乎都不适用于您想要的内容。

我不知道这是否是最好的方法,但它对我有效。

我用检查"/">

name.Count(x => x == '/') > 1

相关内容

  • 没有找到相关文章

最新更新