Получить файл с SMBConnect - PullRequest
       13

Получить файл с SMBConnect

0 голосов
/ 20 декабря 2018

У меня есть скрипт, работающий на Python 3, Ubuntu 16.04, который тянет плоский текстовый файл Windows в Postgres.В настоящее время я должен вручную переместить текстовый файл, и я хотел бы автоматизировать это.

Если я сделаю это:

conn = SMBConnection(credentials['username'],credentials['password'],
    credentials['host'],credentials['server'],use_ntlm_v2 = True)
assert conn.connect(credentials['server_IP'], 139)

files = conn.listPath(credentials['share_name'], "/")
for item in files:
    print(item.filename)
    if item.filename == req_file:
        print('Found a match!!')

conn.close()

Я получу список файлов на целевом компьютере, к которому предоставлен общий доступкаталог.Он даже говорит мне, когда у меня есть соответствие для файла, который я ищу.

Однако, если я пытаюсь получить этот файл, он говорит мне, что он не может подключиться:

conn = SMBConnection(credentials['username'],credentials['password'],
    credentials['host'],credentials['server'],use_ntlm_v2 = True)
assert conn.connect(credentials['server_IP'], 139)

file_obj = tempfile.NamedTemporaryFile(mode='w+t', delete=False)
file_name = file_obj.name

xPath = credentials['source'] + '\\' + req_file

newX = conn.retrieveFile(credentials['source'], xPath, file_obj)

conn.close()

Это дает мне ошибку «невозможно подключиться».Если я изменяю xPath в соответствии с конфигурацией listPath (credentials ['share_name']), я получаю странную ошибку: аргумент write () должен быть строкой, а не байтами! Я хочу записать содержимое этого файла во временный файл, чтобыЯ могу вытащить его в БД. Спасибо!

...