【问题标题】:Setting metadata using Azure C++ SDK使用 Azure C++ SDK 设置元数据
【发布时间】:2017-04-21 02:40:01
【问题描述】:

我正在尝试使用以下代码在 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 存储资源管理器中查看文件时,没有设置元数据。我看了一点,这似乎确实是设置元数据的方式,但无论出于何种原因,它都不起作用。

任何想法将不胜感激!

【问题讨论】:

    标签: c++ azure azure-blob-storage


    【解决方案1】:

    对于任何遇到这种情况的人来说,答案是如果您正在更新它,您需要获得cloud_metadata引用

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

    或者干脆

    auto& md = blockBlob.metadata();
    

    然后它按预期工作!

    【讨论】:

      猜你喜欢
      • 2019-02-01
      • 1970-01-01
      • 2013-09-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-20
      • 2019-11-25
      相关资源
      最近更新 更多