使用Java SDK,如何在Azure存储文件服务中为文件设置元数据?

使用Java SDK,如何在Azure存储文件服务中为文件设置元数据?,java,azure,azure-storage-files,Java,Azure,Azure Storage Files,我有一些Java代码可以在Azure存储文件服务(Azure的SMB文件共享功能)上创建新文件,我正在尝试向com.microsoft.Azure.Storage.file.CloudFile对象添加元数据: final HashMap<String, String> metaData = new HashMap<>(); metaData.put("tag", value); cloudFile.setMetadata(metaData); final HashMap

我有一些Java代码可以在Azure存储文件服务(Azure的SMB文件共享功能)上创建新文件,我正在尝试向com.microsoft.Azure.Storage.file.CloudFile对象添加元数据:

final HashMap<String, String> metaData = new HashMap<>();
metaData.put("tag", value);
cloudFile.setMetadata(metaData);
final HashMap metaData=new HashMap();
元数据.put(“标记”,值);
setMetadata(元数据);
如果我立即对同一个CloudFile对象执行getMetadata()调用,它就在那里。但是,在程序退出并且我在Azure Portal中查看文件后,就看不到元数据了。我刚刚编写了一个单独的测试程序来创建一个引用该文件的新CloudFile对象,它也无法检索元数据

在设置元数据后,是否还需要执行其他操作来“持久化”元数据?顺便说一句,我已经成功地对Blob存储对象执行了此操作,但这是第一次尝试使用文件服务对象。

请在设置元数据后调用方法

所以你的代码应该是:

final HashMap<String, String> metaData = new HashMap<>();
metaData.put("tag", value);
cloudFile.setMetadata(metaData);
cloudFile.uploadMetadata();
final HashMap metaData=new HashMap();
元数据.put(“标记”,值);
setMetadata(元数据);
cloudFile.uploadMetadata();

我在发布我的问题后确实发现了这一点(没有机会更新此线程),但有一件事我不确定,那就是我是否应该首先下载元数据(我发现是通过downloadAttributes()完成的),这样我就不会覆盖任何现有的元数据了?