Простые способы копирования файлов на SFTP с помощью Paramiko: пошаговое руководство

Если вы хотите скопировать файлы на сервер SFTP (протокол безопасной передачи файлов) с помощью Paramiko, вы попали по адресу. В этом руководстве мы рассмотрим несколько методов достижения этой цели, используя простой язык и попутно предоставляя примеры кода. Давайте погрузимся!

Метод 1: загрузка одного файла
Чтобы скопировать один файл на SFTP-сервер с помощью Paramiko, выполните следующие действия:

Шаг 1. Импорт необходимых библиотек
Начните с импорта необходимых библиотек, включая paramikoи любые другие модули, которые могут вам понадобиться для вашего конкретного случая использования.

import paramiko

Шаг 2. Установление SSH-соединения
Далее установите SSH-соединение с SFTP-сервером. Замените заполнители (hostname, port, usernameи password) данными вашего сервера.

ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(hostname='your_server_hostname', port=22, username='your_username', password='your_password')

Шаг 3. Создание SFTP-клиента
Создайте SFTP-клиент, используя установленное SSH-соединение.

sftp = ssh.open_sftp()

Шаг 4. Загрузка файла
Используйте метод put(), чтобы загрузить файл в нужное место на SFTP-сервере. Замените local_file_pathна путь к файлу на вашем локальном компьютере, а remote_file_pathна желаемый путь на SFTP-сервере.

local_file_path = '/path/to/local/file.txt'
remote_file_path = '/path/on/sftp/file.txt'
sftp.put(local_file_path, remote_file_path)

Шаг 5. Закрытие соединения
Наконец, закройте SFTP-клиент и SSH-соединение.

sftp.close()
ssh.close()

Метод 2: загрузка нескольких файлов
Чтобы скопировать несколько файлов на SFTP-сервер с помощью Paramiko, вы можете расширить предыдущий метод, перебирая список файлов и загружая каждый из них по отдельности.

files_to_upload = ['/path/to/file1.txt', '/path/to/file2.txt', '/path/to/file3.txt']
for local_file_path in files_to_upload:
    remote_file_path = '/path/on/sftp/' + local_file_path.split('/')[-1]
    sftp.put(local_file_path, remote_file_path)

Метод 3: загрузка всего каталога
Если вы хотите загрузить весь каталог на SFTP-сервер, вы можете использовать метод put()с параметром recursive=True.

local_directory_path = '/path/to/local/directory'
remote_directory_path = '/path/on/sftp/directory'
sftp.put(local_directory_path, remote_directory_path, recursive=True)

В этом руководстве мы рассмотрели различные методы копирования файлов на SFTP-сервер с помощью Paramiko. Мы рассмотрели загрузку одного файла, загрузку нескольких файлов и загрузку всего каталога. Следуя этим пошаговым инструкциям и используя предоставленные примеры кода, вы сможете с легкостью безопасно передавать файлы на SFTP-сервер.

Помните, Paramiko — это мощная библиотека Python, которая позволяет автоматизировать передачу файлов через SSH, что делает ее отличным выбором для любых задач, связанных с SFTP.

Удачной передачи файлов!