Azure 当我尝试读取append blob时,cpprest断言

Azure 当我尝试读取append blob时,cpprest断言,azure,azure-storage,cpprest-sdk,Azure,Azure Storage,Cpprest Sdk,当我尝试读取另一个进程正在附加的azure存储附加blob时,Cpprest断言。下面是我的代码的相关片段。断言发生在.get期间,在while循环和way的某些迭代次数之后,然后到达blob的末尾 auto blob = container.get_append_blob_reference("asdf"); auto stream = blob.open_read(); while (true) { auto cb = concurrency::streams::containe

当我尝试读取另一个进程正在附加的azure存储附加blob时,Cpprest断言。下面是我的代码的相关片段。断言发生在.get期间,在while循环和way的某些迭代次数之后,然后到达blob的末尾

auto blob = container.get_append_blob_reference("asdf");
auto stream = blob.open_read();

while (true)
{
    auto  cb = concurrency::streams::container_buffer<vector<uint8_t>>({}, ios_base::out);
    if (stream.read(cb, 1024 * 1024).get() == 0)
    {
        break;
    }
}
以下是断言消息:

myapp: /usr/local/include/cpprest/containerstream.h:120: size_t
Concurrency::streams::details::basic_container_buffer<_CollectionType>::in_avail() const
[with _CollectionType = std::vector<unsigned char>; size_t = long unsigned int]:
Assertion `m_current_position <= m_data.size()' failed.

如何处理此问题?

open\u read要求blob在下载过程中保持不变。它将生成一个etag条件,以确保每次下载都来自相同的blob,该blob保持不变。见代码参考:

要解决这个问题,您可以禁用这行代码并手动构建库