我正在寻找一个示例或IP,用于在Blob上传时更新其元数据。感谢所有帮助。
我具有以下功能:
public static void Run([BlobTrigger("types/{name}", Connection = "StorageConnection")]Stream myBlob, string name, ILogger log)
{
}
答案 0 :(得分:1)
您可以使用触发器获取ICloudBlob
而不是流。
在Azure函数的blob触发器上检查official documentation。
基本上,您的代码将如下所示:
public static void Run(
[BlobTrigger("types/{name}", Connection = "StorageConnection")] ICloudBlob myBlob,
string name,
ILogger log)
{
if (blobTrigger.Metadata.ContainsKey("MyKey"))
return;
blobTrigger.Metadata["MyKey"] = "MyValue";
await blobTrigger.SetMetadataAsync();
}
但是有一个问题。更新元数据后,基本上您将再次上传该Blob,这将再次触发您的功能。
我添加了一个简单的检查,以查看是否已经添加了我的元数据键,以避免无限循环。
当然,您可能会以自己的方式知道自己是否只是更新元数据的人。最坏的情况是,您必须使用自己的标志来指示上载是通过您的函数进行的。
希望有帮助。 :)