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

2020年3月23日 13点热度 0条评论

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

final HashMap<String, String> metaData = new HashMap<>();
metaData.put("tag", value);
cloudFile.setMetadata(metaData);

如果我立即在同一个CloudFile对象上执行getMetadata()调用,那么它就在那里。但是,在程序退出并且我在Azure Portal中查看文件之后,就看不到元数据了。我只是编写了一个单独的测试程序来创建一个引用该文件的新CloudFile对象,并且它也无法检索元数据。

设置完元数据后,我还有别的事情要做吗?顺便说一句,我已经成功地对Blob存储对象执行了此操作,但这是第一次对File Service对象进行尝试。

解决方案如下:

设置元数据后,请调用uploadMetadata()方法。

因此您的代码将是:

final HashMap<String, String> metaData = new HashMap<>();
metaData.put("tag", value);
cloudFile.setMetadata(metaData);
cloudFile.uploadMetadata();