Назад | Перейти на главную страницу

Почему я получаю «пустой ответ с сервера» от AWS ECS?

У меня есть веб-служба в образе Docker, в который я пытаюсь загрузить два файла: файл размером 6 МБ и файл 18 МБ.

При запуске в моей локальной службе Docker оба файла загружаются нормально.

С тем же изображением в ECS успешно загружается только файл размером 6 МБ.

Успешная загрузка 6 МБ:

C:\>curl -v -F file=@6mb.zip http://52.xxx.xxx.xxx:5000/api/v1/add_model
*   Trying 52.xxx.xxx.xxx...
* TCP_NODELAY set
* Connected to 52.xxx.xxx.xxx (52.xxx.xxx.xxx) port 5000 (#0)
> POST /classifierService/api/v1/add_model HTTP/1.1
> Host: 52.xxx.xxx.xxx:5000
> User-Agent: curl/7.57.0
> Accept: */*
> Content-Length: 6526998
> Content-Type: multipart/form-data; boundary=------------------------51a3998e86a60e5c
> Expect: 100-continue
>
* Done waiting for 100-continue
< HTTP/1.1 200 OK
< Content-Type: application/json
< Content-Length: 68178
<
<response body>

Однако файл размером 18 МБ выдает пустой ответ.

Неудачная загрузка 18 МБ:

C:\>curl -v -F file=@18mb.zip http://52.xxx.xxx.xxx:5000/api/v1/add_model
*   Trying 52.xxx.xxx.xxx...
* TCP_NODELAY set
* Connected to 52.xxx.xxx.xxx (52.xxx.xxx.xxx) port 5000 (#0)
> POST /classifierService/api/v1/add_model HTTP/1.1
> Host: 52.xxx.xxx.xxx:5000
> User-Agent: curl/7.57.0
> Accept: */*
> Content-Length: 18436586
> Content-Type: multipart/form-data; boundary=------------------------65717bbb45c3da52
> Expect: 100-continue
>
* Done waiting for 100-continue
* Empty reply from server
* Connection #0 to host 52.xxx.xxx.xxx left intact
curl: (52) Empty reply from server

Есть идеи, что может быть не так, или как я могу отладить эту проблему?

Это может быть вызвано множеством причин. Наиболее очевидным из них является среда, которую вы настраиваете на сервере. Многие (если не все) веб-фреймворки устанавливают максимальные лимиты загрузки для предотвращения DoS-атак и других подобных эксплойтов.

PHP (например) устанавливает лимит в 10 МБ, я полагаю. Вам нужно будет изменить соответствующие параметры настройки php.ini следующим образом:

memory_limit = 32M
upload_max_filesize = 10M
post_max_size = 20M

... или вы можете изменить значения в файле .htaccess:

php_value upload_max_filesize 10M
php_value post_max_size 20M
php_value memory_limit 32M

В конечном итоге нам нужно больше информации об окружающей среде, чтобы дать более конкретный ответ.