Learn how to route Python SFTP file transfers through a QuotaGuard Static IP using Paramiko and a SOCKS proxy.
pip install paramiko PySocksQUOTAGUARDSTATIC_URL=... python app.pyBe sure to set QUOTAGUARDSTATIC_URL to your proxy URL from the QuotaGuard Dashboard. Either the HTTP or the SOCKS URL will work because the program will convert to the right port number.
docker build -t qg-static-python-sftp-paramiko-example .
docker run -e QUOTAGUARDSTATIC_URL=... qg-static-python-sftp-paramiko-example#/usr/bin/env python
import os
import paramiko
import socks
from urllib.parse import urlparse
if __name__ == '__main__':
proxy = urlparse(os.environ['QUOTAGUARDSTATIC_URL'])
sock=socks.socksocket()
sock.set_proxy(
proxy_type=socks.SOCKS5,
addr=proxy.hostname,
port=1080,
username=proxy.username,
password=proxy.password,
)
sock.connect(('test.rebex.net', 22))
tport = paramiko.Transport(sock)
tport.connect(username='demo',password='password')
sftp = paramiko.SFTPClient.from_transport(tport)
sftp.get('readme.txt','readme.txt')
sftp.close()
tport.close()
#print the contents of the file downloaded
f = open('readme.txt', 'r')
file_contents = f.read()
print(file_contents)
f.close()
FROM python:latest
#install paramiko
RUN pip install -U pip && \
pip install paramiko PySocks
WORKDIR /app
COPY app.py app.py
ENTRYPOINT [ "python", "app.py" ]