I have 2 different components each in a different container
- Python backend
- IPFS cluster
To integrate the Python backend with IPFS cluster I’m using requests library.
To test the integration, created a test Python file
import requests
url = "IPFS_CLUSTER_IP:9094/id"
payload={}
headers={}
response = requests.request("GET", url, headers=headers, data=payload)
print(response.text)
If I run it like that, then I get an error that shows we need to use Protocol Schema - Python Requests - No connection adapters - Stack Overflow
If add the Protocol Schema, url = "http://IPFS_CLUSTER_IP:9094/id"
, then that doesn’t work.
Traceback (most recent call last):
File “/code/api/tester.py”, line 5, in
response = requests.request(“GET”, url, headers=headers, data=payload)
File “/usr/lib/python3.9/site-packages/requests/api.py”, line 61, in request
return session.request(method=method, url=url, **kwargs)
File “/usr/lib/python3.9/site-packages/requests/sessions.py”, line 542, in request
resp = self.send(prep, **send_kwargs)
File “/usr/lib/python3.9/site-packages/requests/sessions.py”, line 655, in send
r = adapter.send(request, **kwargs)
File “/usr/lib/python3.9/site-packages/requests/adapters.py”, line 516, in send
raise ConnectionError(e, request=request)
requests.exceptions.ConnectionError: HTTPConnectionPool(host=‘IPFS_CLUSTER_IP’, port=9094): Max retries exceeded with url: /id (Caused by NewConnectionError(‘<urllib3.connection.HTTPConnection object at 0x7f1bf1c566a0>: Failed to establish a new connection: [Errno 111] Connection refused’))
If I Port Forward, I’m able to connect to that IPFS Cluster port from my machine.