Azure functions Azure函数与blobtrigger-更新元数据

Azure functions Azure函数与blobtrigger-更新元数据,azure-functions,azure-storage-blobs,Azure Functions,Azure Storage Blobs,我正在寻找一个样本或IP更新blob的元数据时,它被上传。感谢所有的帮助 我有以下功能: public static void Run([BlobTrigger("types/{name}", Connection = "StorageConnection")]Stream myBlob, string name, ILogger log) { } 您可以使用触发器来获取ICloudBlob而不是流。 检查Azure函数的on blob触发器 基本上,您的代码如下所示: 公共静态无效运行 [B

我正在寻找一个样本或IP更新blob的元数据时,它被上传。感谢所有的帮助

我有以下功能:

public static void Run([BlobTrigger("types/{name}", Connection = "StorageConnection")]Stream myBlob, string name, ILogger log)
{
}

您可以使用触发器来获取ICloudBlob而不是流。 检查Azure函数的on blob触发器

基本上,您的代码如下所示:

公共静态无效运行 [BlobTriggertypes/{name},Connection=StorageConnection]ICloudBlob myBlob, 字符串名, 伊洛格测井 { 如果blobTrigger.Metadata.ContainsKeyMyKey 回来 blobTrigger.Metadata[MyKey]=MyValue; 等待blobTrigger.SetMetadataAsync; } 不过有一个问题。更新元数据后,基本上是再次上传blob,这反过来会再次触发函数

我添加了一个简单的检查,看看是否已经添加了元数据键,以避免无限循环。 当然,您可能会有自己的方式知道您是否是刚刚更新元数据的人。最坏的情况是,您必须使用自己的标志来指示上载是从您的函数进行的


希望有帮助

您可以使用触发器获取ICloudBlob而不是流。 检查Azure函数的on blob触发器

基本上,您的代码如下所示:

公共静态无效运行 [BlobTriggertypes/{name},Connection=StorageConnection]ICloudBlob myBlob, 字符串名, 伊洛格测井 { 如果blobTrigger.Metadata.ContainsKeyMyKey 回来 blobTrigger.Metadata[MyKey]=MyValue; 等待blobTrigger.SetMetadataAsync; } 不过有一个问题。更新元数据后,基本上是再次上传blob,这反过来会再次触发函数

我添加了一个简单的检查,看看是否已经添加了元数据键,以避免无限循环。 当然,您可能会有自己的方式知道您是否是刚刚更新元数据的人。最坏的情况是,您必须使用自己的标志来指示上载是从您的函数进行的


希望有帮助

然后您是否必须查询特定的blob?没有直接编辑当前blob的方法吗?我希望从性能的角度来看,我能直接参考当前的blob。哦,我想我误解了你的问题。您可以使用ICloudBlob作为触发器绑定,这将允许您访问blob本身,然后您可以将其保存在容器中,或者您可以简单地使用输出绑定来保存它。我会更新答案。用更简单的方法更新答案。如果对你不起作用,请告诉我。我真的很喜欢这个代码。然而,我刚刚测试了它,我得到了无限循环的确切问题。我会尽力深入研究的。在我的示例中,上传时元数据就在那里。所以我得到了确切的情况:然后你必须查询特定的blob吗?没有直接编辑当前blob的方法吗?我希望从性能的角度来看,我能直接参考当前的blob。哦,我想我误解了你的问题。您可以使用ICloudBlob作为触发器绑定,这将允许您访问blob本身,然后您可以将其保存在容器中,或者您可以简单地使用输出绑定来保存它。我会更新答案。用更简单的方法更新答案。如果对你不起作用,请告诉我。我真的很喜欢这个代码。然而,我刚刚测试了它,我得到了无限循环的确切问题。我会尽力深入研究的。在我的示例中,上传时元数据就在那里。所以我得到了确切的情况: