在 CKAN 中上传文件但收到 'Could not connect to DataPusher' 错误

Uploading files in CKAN but received 'Could not connect to DataPusher' error

我正在尝试将文件上传到 CKAN。但是,我从日志中收到此错误:

{'message': 'Could not connect to DataPusher.', 'details': "HTTPConnectionPool(host='localhost', port=8800): Max retries exceeded with url: /job (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 99] Cannot assign requested address',))"}

经过CKAN多次重试,终于上传完成。我能够下载我的资源并跟踪视图。

我不明白为什么前几次连接失败。我尝试使用 curl 来测试连接:curl http://localhost:8800 但我收到错误:

curl: (56) Recv failure: Connection reset by peer.

然后我尝试修改我的ckan.ini,现在设置如下:

ckan.plugins = datastore datapusher
ckan.datapusher.url = http://localhost:8800

同样在 datapusher.conf 中,我的主机设置为 0.0.0.0,端口设置为 8800:

Listen 8800
<VirtualHost 0.0.0.0:8800>
    ServerName ${CKAN_SERVER_NAME}
    ServerAlias www.${CKAN_SERVER_NAME}

    <Directory "${DATAPUSHER_CONFIG}">
      Require all granted
    </Directory>

    WSGIScriptAlias / ${DATAPUSHER_CONFIG}/datapusher.wsgi
    WSGIPassAuthorization On

    ErrorLog /var/log/apache2/datapusher.error.log
    CustomLog /var/log/apache2/datapusher.custom.log combined

    <IfModule mod_headers.c>
      Header set X-UA-Compatible "IE=edge"
    </IfModule>
</VirtualHost>

datapusher_settings.py中,Host和Port也设置为'0.0.0.0'8800

我阅读了 post 但我没有发现与此设置有任何不同之处。然后我将 ckan.ini 中的主机从 localhost 名称 space 更改为实际的 127.0.0.1,并在 CKAN docker 容器中重新启动 apache 服务,但它仍然 returns

Could not connect to Datapusher

我尝试上传文件,但以不同的错误编号结尾,如下所示:

{'message': 'Could not connect to DataPusher.', 'details': "HTTPConnectionPool(host='127.0.0.1', port=8800): Max retries exceeded with url: /job (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused',))"}

令人惊讶的是,在CKAN中重试几次后,我能够查看资源文件并下载它。我很困惑,因为我几个月来一直在使用相同的设置,而且我没有更新任何配置,而且这个问题最近才开始出现。

我找到了一种手动解决开发问题的方法。问题是由机器上的 datapusher 而不是 运行 引起的。我通过

手动启动了数据推送器

python datapusher/main.py deployment/datapusher_settings.py

datapusher 运行 无中断后,ckan 可以再次连接到datapusher。