Ответ об ошибке при записи файла размером более 4 МБ в Azure Fileshare с использованием URL-адреса SAS

Мы используем URL-адрес SAS (REST API) и метод HTTPS PUT для вызова операции записи (операция диапазона в соответствии с техническим названием Azure) в хранилище файлов Azure. Мы успешно выполняем эту операцию и записываем данные в файл для любого размера данных менее 4 МБ. Если данные превышают 4 МБ, файловое хранилище Azure возвращает приведенный ниже ответ об ошибке.

Мы использовали приложения MuleSoft и Postman для выполнения этой операции. Реакция на ошибку одинакова для всех приложений.

Код ошибки: RequestBodyTooLarge Сообщение: Тело запроса слишком велико и превышает максимально допустимый предел. RequestId: 2bbfe0e9-001a-0050-0291-87df64000000 Максимальный лимит: 4194304

Может кто поможет или через какой-то свет разобраться в вопросе и решении.


person Anonymous    schedule 16.02.2017    source источник
comment
Поскольку PUT Range имеет ограничение на размер до 4 МБ, не могли бы вы предоставить более подробную информацию о своем сценарии, тогда мы могли бы предоставить вам лучшие решения.   -  person Bruce Chen    schedule 20.02.2017


Ответы (1)


Код ошибки: RequestBodyTooLarge Сообщение: Тело запроса слишком велико и превышает максимально допустимый предел. RequestId: 2bbfe0e9-001a-0050-0291-87df64000000 Максимальный лимит: 4194304

Как упоминалось в этом официальном PUT Range о Диапазон или x-ms-range:

Для операции обновления диапазон может быть размером до 4 МБ. Для четкой работы диапазон может быть до значения полного размера файла.

Вызов Put Range с опцией Update выполняет запись на месте в указанный файл. Любое содержимое в указанном диапазоне перезаписывается при обновлении. Размер каждого диапазона, отправленного вместе с параметром Put Range для операции обновления, может достигать 4 МБ. Если вы попытаетесь загрузить диапазон, превышающий 4 МБ, служба вернет код состояния 413 (запрос объекта слишком велик).

Вот мой тест, вы можете сослаться на него:

Насколько я понимаю, если диапазон больше 4 МБ, я предположил, что вам нужно разбить ваши данные в буфер (размером до 4 МБ), тогда вы можете вызвать PUT Range Rest API для обновления ваших данных с определенным диапазоном, чтобы или параллельно.

person Bruce Chen    schedule 17.02.2017