我正在尝试使用以下代码在Azure blob存储中的文件上设置元数据:
bool AzureUploader::uploadFile(const boost::filesystem::path& filePath)
{
auto leaf = filePath.filename();
azure::storage::cloud_blob_container container =
blob_client.get_container_reference(U("my_container"));
container.create_if_not_exists();
azure::storage::cloud_block_blob blockBlob =
container.get_block_blob_reference(leaf.wstring());
auto filepathStr = filePath.wstring();
blockBlob.upload_from_file(filepathStr);
blockBlob.download_attributes();
azure::storage::cloud_metadata md = blockBlob.metadata();
md[U("_timestamp")] = U("today");
blockBlob.upload_metadata();
}
然而,当我查看Azure Storage Explorer中的文件时,没有设置元数据。我看了一下,这似乎是设置元数据的方式,但无论出于何种原因,它都无法正常工作。
任何想法都将不胜感激!
答案 0 :(得分:1)
对于任何遇到这种情况的人来说,如果您要更新它,答案是您需要获得参考到cloud_metadata
:
azure::storage::cloud_metadata& md = blockBlob.metadata();
或只是
auto& md = blockBlob.metadata();
然后按预期工作!