Настройка метаданных с помощью Azure C ++ SDK

Я пытаюсь установить метаданные для файла в хранилище BLOB-объектов Azure, используя следующий код:

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, метаданные не устанавливаются. Я посмотрел немного, и это, кажется, способ установки метаданных, но по какой-то причине это не работает.

Благодарим за любую идею!

2

Решение

Для тех, кто сталкивается с этим, рвут на себе волосы, ответ — вам нужно достичь ссылка в cloud_metadata если вы обновляете его:

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

или просто

auto& md = blockBlob.metadata();

Тогда все работает как положено!

1

Другие решения

Других решений пока нет …