2016-12-06 74 views
2

我試圖用下面的代碼在Azure的Blob存儲一個文件中設置的元數據設置的元數據:使用Azure的C++ SDK

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存儲資源管理器中的文件沒有元數據組。我已經看了一下,這看起來似乎是設置元數據的方式,但無論出於何種原因它都無法正常工作。

任何想法將不勝感激!

回答

1

對於任何人誰碰到這個撕扯自己的頭髮走出來的時候,答案是你需要獲得到cloud_metadata一個參考如果您要更新它:

azure::storage::cloud_metadata& md = blockBlob.metadata(); 

或者乾脆

auto& md = blockBlob.metadata(); 

然後它按預期工作!