У меня есть веб-служба в образе 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
В конечном итоге нам нужно больше информации об окружающей среде, чтобы дать более конкретный ответ.