【问题标题】:How to check if metadata is empty如何检查元数据是否为空
【发布时间】:2022-01-24 00:43:45
【问题描述】:

我创建了一个 addMetadata 类来将元数据添加到存储在 Azure 容器中的 BLOB。但在我想添加新的元数据之前,我想检查现有的元数据,并且只有在没有元数据的情况下我才想做一些事情。我尝试了以下代码:

 if (properties.Metadata == null)
                    {
                        // Do stuff... 
                    }

其中 properties 是由 BlobClient.GetPropertiesAsync() 生成的 BlobProperties 变量。但是这似乎不起作用,有人有其他建议吗?

非常感谢!

【问题讨论】:

  • 嗨@fooourierou,如果下面的答案有帮助,您可以接受它作为答案(单击答案旁边的复选标记将其从灰色切换为已填充。)。这对其他社区成员可能是有益的。谢谢

标签: c# azure azure-blob-storage azureportal


【解决方案1】:

我在我的系统中尝试过

尝试使用blob.Metadata.Count 如果元数据数据未设置则返回整数值返回0否则返回blob中元数据的计数值。然后检查计数值是否为0添加新的元数据数据

            CloudStorageAccount storageAccount = CloudStorageAccount.Parse("Connection String");
            CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
            CloudBlobContainer container = blobClient.GetContainerReference("test // container name");
            CloudBlockBlob blob = container.GetBlockBlobReference("caseno.txt //blob name");
            blob.FetchAttributes();
            Console.WriteLine("Blob metadata:");

            // Enumerate the blob's metadata.
            Console.WriteLine(blob.Metadata);
            //Check the blobs metadata 
            if (blob.Metadata.Count == 0)
            {
                blob.Metadata.Add("docType", "textDocuments");

                // Add metadata to the blob by using key/value syntax.
                blob.Metadata["caseno"] = "caseno";
                blob.SetMetadata();
            }
            foreach (var metadataItem in blob.Metadata)
            {
                Console.WriteLine("\tKey: {0}", metadataItem.Key);
                Console.WriteLine("\tValue: {0}", metadataItem.Value);
            }

输出

【讨论】:

    猜你喜欢
    • 2013-07-20
    • 2015-05-07
    • 1970-01-01
    • 2012-08-28
    • 2011-01-23
    • 2012-11-25
    • 2012-02-28
    • 1970-01-01
    相关资源
    最近更新 更多