2015-09-28 2 views
0

Мне нужно отправить большой запрос POST как часть вызова API RESTful. Полезная нагрузка составляет около 80 МБ. Когда я пытаюсь отправить это в GAE Java, я получаю исключение, говоря, что это недопустимый размер, потому что он слишком велик. Каковы наиболее распространенные способы отправки такого большого запроса POST? В моем случае эта просьба случается очень редко, может быть, раз в 6 месяцев или около того. Тем не менее, мне нужна эта функция.Отправить большой запрос POST от Google App Engine

+0

Похоже, вы отправляете свое сообщение третьему лицу. это будет зависеть от API сторонних разработчиков. Если их API не разрешает я подозреваю, что вам не повезло. –

ответ

0

Из документов - https://cloud.google.com/appengine/docs/quotas#Requests

Объем данных, получаемых приложением от запросов. Каждый входящий HTTP-запрос может быть не более 32 МБ.

Это включает в себя:

данные, полученного приложение в защищенных запросах и небезопасные запросы загрузок в данном Blobstore , полученном в ответ на HTTP-запросы по URL Fetch служба

Так написать его GCS или S3 или листы Google, документы и т. Д. (В любом месте, где вы можете хранить большую полезную нагрузку, а затем обрабатывать это через очередь задач.

+0

Именно поэтому я правильно вас понимаю, 1. скажем, мои данные 90 МБ поступают с моего собственного сайта через HTTP POST. 2. Затем мой сервлет GAE Java хранит его в GCS. 3. Отправьте очередь задач, которая затем загружает этот файл из GCS и запрашивает POST на удаленный сервер. 4. Получите ответ на запрос и напишите в хранилище данных – jiminssy

+0

@jiminssy Не совсем. App Engine не будет принимать запросы, большие. Чтобы загрузить файл, вашему веб-сайту придется использовать облачное хранилище api (https://cloud.google.com/storage/docs/json_api/v1/objects/insert). Вы можете использовать канал для мониторинга своих загрузок из приложения приложения (https://cloud.google.com/storage/docs/json_api/v1/objects/watchAll) или запускать приложение appengine после завершения загрузки. Конечно, вы могли бы также вырезать файл и загружать куски через движок приложения и как-то собирать данные (что, вероятно, также будет связано с облачным хранилищем) – konqi

+0

@konqi Это странно. Я могу отправить тело POST, которое имеет большое значение для моего приложения GAE для разработки на местном уровне, и приходит без исключения в соответствующий сервлет doPost. Так что в реальном облачном экземпляре это не сработает? – jiminssy

Смежные вопросы