Python SFTP Bloomberg Data License - Paramiko
Кто-нибудь знает о решении Python для sftp в сервис Bloomberg предприятия. Мы конвертируем некоторую работу Bloomberg из Mathworks в Python. Исторически я мог бы сделать это в Mathworks, используя эту функцию, используя функцию bdl.
username = 'xxxxx';
password = 'xxxxxxxx';
hostname = 'dlsftp.bloomberg.com';
portnumber = 30206;
decrypt = 'nAcLeZ';
c = bdl(username,password,hostname,portnumber,decrypt)
Какие-нибудь мысли? Спасибо!
1 ответ
Решение
Хорошо, для всех, кому нужен прокси SOCKS через Bloomberg, вот что я сделал, и это работает:
После некоторых исследований, кажется, расшифровать не нужно. Этот код работает, просто обязательно включите два файла для теста: ('readme.txt','readme-test.txt') на вашем сервере Bloomberg, используя RequestBuilder или WinSCP.
# coding: utf-8
import paramiko
import socket
import socks
proxy_details = {'host': "xxx",
'port': 1080,
'username': "xxx",
'password': "xxx"}
auth_credentials = {'host': "sftp.bloomberg.com",
'username': "dlxxxxxx",
'password': "xxxxxx"}
s = socks.socksocket()
s.set_proxy(
proxy_type=socks.SOCKS5,
addr=proxy_details['host'],
port=proxy_details['port'],
username=proxy_details['username'],
password=proxy_details['password']
)
#setup the SFTP client using the connected socket
s.connect((auth_credentials['host'],22))
transport = paramiko.Transport(s)
transport.connect(username=auth_credentials['username'],
password=auth_credentials['password'])
# start SFTP Client from SSH transport
sftp = paramiko.SFTPClient.from_transport(transport) #.get_transport() was appended
#will download readme.txt from the remote server, and save as the filename in the second argument
sftp.get('readme.txt','readme-test.txt')
#Test whether transport is authenticated
print (transport.is_authenticated())
# cleanup
sftp.close()
transport.close()