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

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

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

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

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

1 ответ

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

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

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

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

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

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

Другие вопросы по тегам