#python #django #web-deployment #cloudinary #pythonanywhere
#python #django #веб-развертывание #cloudinary #pythonanywhere
Вопрос:
Я использую Pythonanywhere для хранения моего кода Django, и все работает правильно, за исключением случаев, когда я пытаюсь загрузить изображение.
Я получил эту ошибку:
cloudinary.exceptions.Error: Unexpected error - MaxRetryError("HTTPSConnectionPool(host='api.cloudinary.com', port=443): Max retries exceeded with url: /v1_1/MY-CLOUD-NAME/image/upload (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x7f5de5f6e6d0>: Failed to establish a new connection: [Errno 111] Connection refused'))")
Это мой код в model.py:
from cloudinary.models import CloudinaryField
some class
project_image = CloudinaryField("project_img", proxy="http://proxy.server:3128")
Это мой код в setting.py:
CLOUDINARY = {
'cloud_name': 'CLOUD-NAME',
'api_key': 'xx',
'api_secret': 'xx,
}
CLOUDINARY_URL='cloudinary://xxx@CLOUD-NAME?api_proxy=proxy.server:3128'
Я также попытался изменить часть proxy.server на:
- https://api.cloudinary.com/v1_1/MY-CLOUD-NAME
и добавьте api_proxy в CLOUDINARY
параметр, но он также не сработал
PS Я использую бесплатную учетную запись Pythonanywhere, и я провожу некоторые исследования, и владелец сказал, что мне нужно установить прокси proxy.server:3128
, но я не знаю, как это сделать
P.S.2 Что я пытался сделать до сих пор
- обновите urllib, но не получилось
- попробуйте добавить прокси-сервер разными способами при настройке.py, как вы видели выше
Ответ №1:
В ваших настройках попробуйте настроить api следующим образом:
CLOUDINARY = {
'cloud_name': 'CLOUD-NAME',
'api_key': 'xx',
'api_secret': 'xx',
'api_proxy': 'http://proxy.server:3128'
}
Как указано в этом комментарии к проблеме на github.
Комментарии:
1. Я только что попробовал это, но это выдает мне другую ошибку « Код ошибки: необработанное исключение « на главном сайте и еще одна длинная ошибка на странице журнала« Ошибка при запуске приложения WSGI, urllib3.исключения. ProxySchemeUnknown: не поддерживается схема прокси-сервера Нет«
2. Я добавил протокол к URL-адресу прокси-сервера, это работает?
Ответ №2:
Если вы используете бесплатную учетную запись pythonanywhere, то она не позволяет вам получить доступ к URL-адресу CDN, поскольку он не внесен в белый список. Вы должны перейти на платную учетную запись, чтобы ваше приложение могло получить доступ к этому URL.