LeshaInc 625 Опубликовано: 22 июля, 2016 OpenFTP Иногда нужно скачать большое количество файлов с FTP сервера. Это затруднительно, когда дело доходит до OpenComputers, потому что FTP клиента попросту нет. Приходится изощряться, заливать файлы на HTTP сервер, pastebin или вовсе вставлять их из буфера обмена. И все было бы хорошо, если бы были эти способы удобными. Потому написал я FTP клиент для OpenComputers. Название ему — OpenFTP. Он поддерживает большинство функций, как и старшие братья OpenFTP, такие как FileZilla и bsd FTP. Интерфейс схож с таковым из bsd FTP. Приятная командная строка, команды похожи на *NIX команды, например rm, ls, rename, mkdir. Скорость для OpenComputers бомбезная. Почти 50 кб в секунду на чтение, и в 10 раз больше на запись. Учитывая вместимость дисков, это очень хорошие показатели. Скачать: pastebin get UPcwLA9ep /bin/ftp.lua Для подключения к серверу набираем ftp <хост сервера> [порт сервера (по умолчанию 21)]. После этого OpenFTP попросит имя пользователя и пароль. Увидели ftp> — соединение успешно налажено. Теперь мы можем писать команды для общения с сервером. Команды cd <путь> — перейти в директорию по указанному пути. Работает аналогично таковой в OpenOS оболочке. .. — перейти в директорию-родитель. Результат будет таким же, как в cd ... Например, если мы были в директории /home/peter/programs, после применения команды мы окажемся в директории /home/peter. pwd — указывает директорию в которой мы находимся. ls [-s] [путь] — указывает список файлов в указанной директории (по умолчанию — текущая директория). Флаг -s применяется в том случае, если мы хотим неполный вывод, без полезной информации вроде даты изменения и автора. rm [-d] <путь> — удаляет файл или папку. Если мы хотим удалить папку, добавляем ключик -d. mkdir <путь> — создать новую директорию по указанному пути. rename <было> <стало> — переименовать файл или директорию. После выполнения команды, если все пройдет успешно, было сменится на стало. Алиас: rn. ascii — переходит в ASCII режим передачи файлов. Использовать не рекомендуется, т.к. возможны последующие искажения файлов. binary — переходит в бинарный режим передачи файлов. Рекомендуется использовать именно его, таким образом абсолютно все символы передадутся без потерь. По умолчанию, к слову, используется именно он. Ох, и самое главное: get <путь до файла на сервере> [путь до файла на клиенте] — скачивает указанный файл с сервера. put <путь до файла на клиенте> [путь до файла на сервере] — загружает указанный файл на сервер. nop — команда которая ничего не сделает. (не шучу, в FTP протоколе правда есть команда такая, правда называется она NOOP = No Operation) У каждой команды есть также флаг --help, который показывает помощь (на английском) Хочу также сказать спасибо @Fingercomp за предоставленный прогресс-бар. Без него жизнь малиной не казалась бы =). Также спасибо ему за доступ на свой FTP сервер, где я мог спокойно тестировать программу. Enjoy! PS: =( 24 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
NEO 542 Опубликовано: 22 июля, 2016 А где лайк Тоторо? 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
davial 1 972 Опубликовано: 22 июля, 2016 (изменено) Прогрессбар - можно было и точками сделать. Как в NIX-системах. По-типу : Loading . . . . . . . . . . . . . . . . 72% Изменено 22 июля, 2016 пользователем davial Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
swg2you 403 Опубликовано: 22 июля, 2016 ...Потому написал я FTP клиент для OpenComputers... Браво! Еще бы telnet или ssh, и все барьеры сняты. 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Fingercomp 4 409 Опубликовано: 22 июля, 2016 Все барьеры будут сняты, как только TLS станет доступен Или как только я разберусь, как он вообще работает... Прогрессбар - можно было и точками сделать. Как в NIX-системах. По-типу : Loading . . . . . . . . . . . . . . . . 72% В клиенте этом покруче будет, я вот тут пилил их. Там части блока используются, более плавный прогрессбар получается. А где лайк Тоторо? Ещё занят в такое время, наверное 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Zer0Galaxy 2 187 Опубликовано: 23 июля, 2016 Еще бы OpenFTP-сервер... 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
NEO 542 Опубликовано: 23 июля, 2016 Еще бы OpenFTP-сервер... Кто нибудь возьмёт всю power в руки, и напишет. Я уже пишу кое что, может Лешка заинтересуется, а может ты сам напишешь, а может кто то другой. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Гость Kartze Опубликовано: 23 июля, 2016 (изменено) setFG(0xFF0000) print("Connection lost.") setFG(0xFFFFFF) ... if code >= 100 and code < 200 then codeColor = 0x0000FF elseif code >= 200 and code < 300 then codeColor = 0x00FF00 elseif code >= 300 and code < 400 then codeColor = 0xFFFF00 else codeColor = 0xFF0000 end ... io.write(data.code) setFG(0x666999) io.write(data.isLast and " " or "-") setFG(0xFFFFFF) io.write(data.text .. "\n") ... Мб тогда в начале сделать: local prFG ... function cwrite(text:string, fg:number) if isColored then prFG = gpu.getForeground() -- точно не помню, могу ошибаться gpu.setForeground(fg) print(text) gpu.setForeground(prFG) else print(text) end end ... Или переопределить функцию print похожим образом, через io.write(text + "\n"). Тогда можно использовать cwrite("Connection lost.", 0xFF0000). Изменено 23 июля, 2016 пользователем Kartze Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
LeshaInc Автор темы 625 Опубликовано: 23 июля, 2016 (изменено) Еще бы OpenFTP-сервер... OpenComputers умеет только открывать TCP сокеты, а вот создавать TCP слушателя он не может, к сожалению. Я думаю такое искусственное ограничение создано дабы облегчить нагрузку на сервер. Он и так держит соеденение с кучей клиентов, если к этому добавить OpenComputers он вообще грохнется. =) ... Как то не подумал об этом >_<. Ну вобщем будет что то вроде такого когда я буду налаживать кроссплатформеность OpenFTP. А имено: plan9k. На этой операционке клиент запускается, но багает прогрессбар и цветной-убер вывод. Пока правда, к сожалению прогрессбар не получаается починить, тут уж проблема в самой plan9k - не может он выводить юникод из за бага. (Говорил об этом с создателем plan9k). Браво!Еще бы telnet или ssh, и все барьеры сняты. telnet реализовать будет не так уж и сложно, а вот с ssh проблемы обеспечены. ssh работае поверх tls сокетов, кои OpenComputers не поддерживает. Потому нужно с ними разбираться, курить тонны rfc-шек и просить помощи у "больших дяденек". =) Да и скорее всего ssh такой будет требовать дата-карту, ибо tls использует aes шифрование. Изменено 23 июля, 2016 пользователем LeshaInc Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
1Ridav 1 049 Опубликовано: 23 июля, 2016 OpenComputers умеет только открывать TCP сокеты, а вот создавать TCP слушателя он не может, к сожалению. Я думаю такое искусственное ограничение создано дабы облегчить нагрузку на сервер. Он и так держит соеденение с кучей клиентов, если к этому добавить OpenComputers он вообще грохнется. =) Потому и пришлось пилить свой мост. Он всегда работает, если кому вдруг надо подключаться к компам OC извне Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Alex 4 683 Опубликовано: 26 июля, 2016 Иногда нужно скачать большое количество файлов с FTP сервера. Это затруднительно, когда дело доходит до OpenComputers, потому что FTP клиента попросту нет. Отличная программка. Но практически никто не будет поднимать фтп сервер, чтобы скачать "большое" кол-во файлов в майнКомпуктер. И папки целиком оно же не качает? Когда у кого может наступить такая ситуация? Отдельный лайк за прогресс бар, но лучше сделать точечки, как предложил Давиал - сильно аляписто там та лепешка смотрится в консольке. У apple, и то точечки, а тут в ОС-ке каком-то "графон") Также высока вероятность при игровом процессе угона учетки от фтп (как и в майнОси ECS от ВК) Такие проги чреваты для майна нехорошими последствиями чисто гипотетически. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
swg2you 403 Опубликовано: 26 июля, 2016 ..никто не будет поднимать фтп сервер.. ..высока вероятность .. угона учетки.. Есть тьма публичных фтп помоек хранилищ и проблема кражи логопары, в данном случае, неактуальна. А так да, верно подмечено, и было бы хорошим тоном выводить дисклеймер в программе, типа "Ввод логопары небезопасен!!1111 Страх и риск, бла-бла-бла!111" p.s. точечки рулят Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Bs0Dd 206 Опубликовано: 30 января, 2021 В 22.07.2016 в 21:51, LeshaInc сказал: Скачать: pastebin get UPcwLA9ep /bin/ftp.lua Неужели никто за столько времени не заметил опечатку в ссылке, в конце лишняя 'p' стоит, из-за чего клиент не грузится Должно быть pastebin get UPcwLA9e /bin/ftp.lua Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Asior 586 Опубликовано: 30 января, 2021 47 минут назад, Bs0Dd сказал: Неужели никто за столько времени не заметил опечатку в ссылке Вариант 1. Никто никогда не пользовался этим Вариант 2. Никто никогда не грузил это Вариант 3. Все смотрят на пастебине так как ссылка кликабельна 3 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Bumer_32 37 Опубликовано: 7 сентября, 2022 (изменено) В 30.01.2021 в 12:21, Asior сказал: Вариант 1. Никто никогда не пользовался этим Вариант 2. Никто никогда не грузил это Вариант 3. Все смотрят на пастебине так как ссылка кликабельна 3. как теперь закрыть это? Изменено 7 сентября, 2022 пользователем Bumer_32 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах