Как загрузить файл из расшаренного FTP ресурса в локальной сети? Всем доброго времени суток!
Задача:
Написать код который будет отправлять файл определенного репозитория, переименовывая его, на FTP-ресурс сервера находящегося в локальной сети.
Проблема: не могу придумать как написать функцию, всё "навесное" уже написал, а над самой функцией 2ую неделю сижу,
Если конечно можно, расскажите как можно было бы следить за ходом загрузки, файлы очень объемные, а соединение бывает нестабильное. Заранее всем спасибо за потраченное время, жду ответов)

23 Мая 2020 в 19:47
157 +1
0
Ответы
1

Для загрузки файла из расшаренного FTP ресурса в локальной сети, можно воспользоваться библиотекой ftplib в Python. Вот пример кода, который сначала загружает файл с FTP-ресурса, а затем отправляет его на другой FTP-ресурс:

from ftplib import FTP
import os
def download_file_from_ftp(source_ftp_host, source_ftp_path, source_filename, dest_filename):
ftp = FTP(source_ftp_host)
ftp.login()
ftp.cwd(source_ftp_path)
with open(dest_filename, 'wb') as file:
ftp.retrbinary('RETR ' + source_filename, file.write)
ftp.quit()
def upload_file_to_ftp(dest_ftp_host, dest_ftp_path, dest_filename):
ftp = FTP(dest_ftp_host)
ftp.login()
ftp.cwd(dest_ftp_path)
with open(dest_filename, 'rb') as file:
ftp.storbinary('STOR ' + dest_filename, file)
ftp.quit()
source_ftp_host = 'source_ftp_host'
source_ftp_path = 'source_ftp_path'
source_filename = 'source_filename.txt'
dest_filename = 'dest_filename.txt'
download_file_from_ftp(source_ftp_host, source_ftp_path, source_filename, dest_filename)
dest_ftp_host = 'dest_ftp_host'
dest_ftp_path = 'dest_ftp_path'
upload_file_to_ftp(dest_ftp_host, dest_ftp_path, dest_filename)

Чтобы следить за ходом загрузки файла, можно добавить вывод информации о том, сколько байт уже было передано. Например, перед каждой итерацией записи в файл или чтения из файла можно выводить количество байт, которое уже было передано или прочитано. Также можно добавить обработку возможных ошибок при передаче файлов и повторные попытки в случае неудачной передачи.

18 Апр в 11:44
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 92 548 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир