У меня есть сервер загрузки, который каждую минуту добавляет новый блок к добавляемому BLOB-объекту.Он добавляет около 2 МБ данных для каждого блока:
await blob.AppendBlockAsync(new MemoryStream(data)).ConfigureAwait(false);
Пока он запущен, мне нужно иметь возможность загружать весь дополнительный блок в любой момент времени.Предположим, что через 20 часов мне нужно загрузить весь бланк добавления, пока сервер загрузки продолжается.20 часов x 60 минут x 2 МБ = 2400 МБ.Я загружаю вот так:
await blob.DownloadToStreamAsync(ms).ConfigureAwait(false);
Проблема в том, что я не могу загрузить 2400 МБ менее чем за одну минуту.В результате, когда сервер загрузки добавляет другой блок, метод DownloadToStreamAsync выдает исключение:
Удаленный сервер возвратил ошибку: (412) Условие, указанное с помощью условных заголовков HTTP, не являетсяmet ..
DownloadToStreamAsync () включает в себя перегрузку, которая позволяет указывать условие Microsoft.WindowsAzure.Storage.AccessCondition, однако, похоже, что не существует каких-либо опций, решающих эту проблему.Я отмечу ваш ответ как правильный, если вы сможете решить эту проблему только в C # (без использования таких инструментов, как AZCopy и т. Д.).Спасибо!