FTP клиент для передачи файлов и просмотра их. [BETA]
Как я уже показывал ранее в статье (https://vipadmin.club/bot-redirect?https://endway.org/threads/besplatnyj-minidomen.3011/#post-13911) на форуме, можно создавать FTP сервер, и по идеи это круто, ты можешь свой сайт поставить, и много чего еще, но к всему этому я решил сделать простой и крутой код для подключений к FTP серверу
![FTP клиент для передачи файлов и просмотра их. [BETA]](/uploads/posts/2024-02/1688326290440.webp)
Мой код умеет :
lists - просмотр всех файлов на сервере
upload - загрузка файлов на сервер (пример : upload /home/space/Desktop/password.txt) либо (пример №2 : upload ./password.txt)
download - скачивание файлов с сервера (пример : download list.txt)
По файлам :
- main.py - основной код
- config.json - файл с конфигом для входа в аккаунт FTP
main.py
import os
import json
from ftplib import FTP
class FTPClient:
def __init__(self, host, username, password):
self.host = host
self.username = username
self.password = password
self.ftp = FTP(self.host)
self.ftp.login(self.username, self.password)
def lists(self):
self.ftp.retrlines('LIST')
def upload(self, filename):
with open(filename, 'rb') as file:
self.ftp.storbinary('STOR ' + os.path.basename(filename), file)
def download(self, filename):
local_filename = os.path.join('downloads', os.path.basename(filename))
os.makedirs(os.path.dirname(local_filename), exist_ok=True)
with open(local_filename, 'wb') as file:
self.ftp.retrbinary('RETR ' + filename, file.write)
def load_config():
with open('config.json') as file:
config = json.load(file)
return config
def main():
config = load_config()
host = config['host']
username = config['username']
password = config['password']
ftp_client = FTPClient(host, username, password)
while True:
command = input('Введите команду (lists, upload, download) или "exit" для выхода: ')
if command == 'lists':
ftp_client.lists()
elif command.startswith('upload '):
filename = command.split(' ')[1]
ftp_client.upload(filename)
elif command.startswith('download '):
filename = command.split(' ')[1]
ftp_client.download(filename)
elif command == 'exit':
break
else:
print('Некорректная команда!')
ftp_client.ftp.quit()
if __name__ == '__main__':
main()
config.json
{
"host": "experemental.coolpage.biz",
"username": "experemental.coolpage.biz",
"password": "oleg2201"
}