如何检查元数据是不是为空

Posted

技术标签:

【中文标题】如何检查元数据是不是为空【英文标题】: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,如果下面的答案有帮助,您可以接受它作为答案(单击答案旁边的复选标记将其从灰色切换为已填充。)。这对其他社区成员可能是有益的。谢谢 【参考方案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);
            

输出

【讨论】:

以上是关于如何检查元数据是不是为空的主要内容,如果未能解决你的问题,请参考以下文章

火花行编码器:空元数据

如何检查数据读取器是不是为空或为空

Firebase用户为已注册的用户返回空元数据

如何检查火花数据框是不是为空?

如何检查火花数据框是不是为空?

关于python的元组操作