Ошибка при записи файла размером более 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 для обновления ваших данных с определенным диапазоном по порядку или параллельно.