Перейти к содержимому


Фотография

OpenFTP — простой FTP клиент

ftp opencomputer os бесплатное пиво и сок leshainc

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 11

#1 Оффлайн   LeshaInc

LeshaInc
  • Пользователи
  • Сообщений: 1 204
  • Уровень сигнала: 15,61%
  • В игре: 116 час. 32 мин.
  • ГородЛуна

Награды

                       

Отправлено 22 Июль 2016 - 22:51

*
Популярное сообщение!

OpenFTP

Иногда нужно скачать большое количество файлов с FTP сервера. Это затруднительно, когда дело доходит до OpenComputers, потому что FTP клиента попросту нет. Приходится изощряться, заливать файлы на HTTP сервер, pastebin или вовсе вставлять их из буфера обмена.

И все было бы хорошо, если бы были эти способы удобными. Потому написал я FTP клиент для OpenComputers. Название ему — OpenFTP.

 

Он поддерживает большинство функций, как и старшие братья OpenFTP, такие как FileZilla и bsd FTP.

 

734046a4855b41bf86dafba0697ec3b7.png

 

Интерфейс схож с таковым из 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:

Спойлер


Сообщение отредактировал LeshaInc: 22 Июль 2016 - 23:31


#2 Оффлайн   NEO

NEO
  • Пользователи
  • Сообщений: 1 748
  • Уровень сигнала: 4,88%
  • В игре: 36 час. 25 мин.
  • ГородСолнце

Награды

   3                        

Отправлено 23 Июль 2016 - 00:17

А где лайк Тоторо? :smile25:


  • LeshaInc и Kartze это нравится

#3 Онлайн   davial

davial
  • Пользователи
  • Сообщений: 440
  • Уровень сигнала: 15,42%
  • В игре: 115 час. 7 мин.
  • ГородТроон в системе Канопуса.

Награды

                    

Отправлено 23 Июль 2016 - 00:27

Прогрессбар - можно было и точками сделать. Как в NIX-системах. По-типу : Loading . . . . . . . . . . . . . . .                   . 72%


Сообщение отредактировал davial: 23 Июль 2016 - 00:29


#4 Оффлайн   swg2you

swg2you
  • Пользователи
  • Сообщений: 268
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.

Награды

              

Отправлено 23 Июль 2016 - 00:56

...Потому написал я FTP клиент для OpenComputers...

Браво!

Еще бы telnet или ssh, и все барьеры сняты.


  • NEO и Kartze это нравится

#5 Оффлайн   Fingercomp

Fingercomp
  • Гуру
  • Сообщений: 1 999
  • Уровень сигнала: 171,24%
  • В игре: 1278 час. 43 мин.

Награды

                                               

Отправлено 23 Июль 2016 - 01:23

Все барьеры будут сняты, как только TLS станет доступен :) Или как только я разберусь, как он вообще работает...

 



Прогрессбар - можно было и точками сделать. Как в NIX-системах. По-типу : Loading . . . . . . . . . . . . . . .                   . 72%

В клиенте этом покруче будет, я вот тут пилил их. Там части блока используются, более плавный прогрессбар получается.

 



А где лайк Тоторо? :smile25:

Ещё занят в такое время, наверное :)


  • davial это нравится

#6 Оффлайн   Zer0Galaxy

Zer0Galaxy
  • Гуру
  • Сообщений: 1 228
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.

Награды

   5                              

Отправлено 23 Июль 2016 - 08:19

Еще бы OpenFTP-сервер...
  • NEO и Kartze это нравится

#7 Оффлайн   NEO

NEO
  • Пользователи
  • Сообщений: 1 748
  • Уровень сигнала: 4,88%
  • В игре: 36 час. 25 мин.
  • ГородСолнце

Награды

   3                        

Отправлено 23 Июль 2016 - 09:10

Еще бы OpenFTP-сервер...


Кто нибудь возьмёт всю power в руки, и напишет. Я уже пишу кое что, может Лешка заинтересуется, а может ты сам напишешь, а может кто то другой.

#8 Оффлайн   Kartze

Kartze
  • Пользователи
  • Сообщений: 435
  • Уровень сигнала: 41,03%
  • В игре: 306 час. 24 мин.

Награды

              

Отправлено 23 Июль 2016 - 09:21

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).


Сообщение отредактировал Saintmare: 23 Июль 2016 - 09:23


#9 Оффлайн   LeshaInc

LeshaInc
  • Автор темы
  • Пользователи
  • Сообщений: 1 204
  • Уровень сигнала: 15,61%
  • В игре: 116 час. 32 мин.
  • ГородЛуна

Награды

                       

Отправлено 23 Июль 2016 - 11:20

Еще бы OpenFTP-сервер...



OpenComputers умеет только открывать TCP сокеты, а вот создавать TCP слушателя он не может, к сожалению. Я думаю такое искусственное ограничение создано дабы облегчить нагрузку на сервер. Он и так держит соеденение с кучей клиентов, если к этому добавить OpenComputers он вообще грохнется. =)

...


Как то не подумал об этом >_<. Ну вобщем будет что то вроде такого когда я буду налаживать кроссплатформеность OpenFTP. А имено: plan9k. На этой операционке клиент запускается, но багает прогрессбар и цветной-убер вывод. Пока правда, к сожалению прогрессбар не получаается починить, тут уж проблема в самой plan9k - не может он выводить юникод из за бага. (Говорил об этом с создателем plan9k).

Браво!
Еще бы telnet или ssh, и все барьеры сняты.


telnet реализовать будет не так уж и сложно, а вот с ssh проблемы обеспечены. ssh работае поверх tls сокетов, кои OpenComputers не поддерживает. Потому нужно с ними разбираться, курить тонны rfc-шек и просить помощи у "больших дяденек". =)
Да и скорее всего ssh такой будет требовать дата-карту, ибо tls использует aes шифрование.

Сообщение отредактировал LeshaInc: 23 Июль 2016 - 11:22


#10 Оффлайн   1Ridav

1Ridav

    Орден К.А.

  • Администраторы
  • Сообщений: 278
  • Уровень сигнала: 4,41%
  • В игре: 32 час. 57 мин.

Награды

            2      

Отправлено 23 Июль 2016 - 20:26

OpenComputers умеет только открывать TCP сокеты, а вот создавать TCP слушателя он не может, к сожалению. Я думаю такое искусственное ограничение создано дабы облегчить нагрузку на сервер. Он и так держит соеденение с кучей клиентов, если к этому добавить OpenComputers он вообще грохнется. =)
 


 

Потому и пришлось пилить свой мост. Он всегда работает, если кому вдруг надо подключаться к компам OC извне



#11 Оффлайн   Alex

Alex
  • Администраторы
  • Сообщений: 3 735
  • Уровень сигнала: 52,61%
  • В игре: 392 час. 51 мин.

Награды

                 

Отправлено 26 Июль 2016 - 21:04

Иногда нужно скачать большое количество файлов с FTP сервера. Это затруднительно, когда дело доходит до OpenComputers, потому что FTP клиента попросту нет.

Отличная программка. Но практически никто не будет поднимать фтп сервер, чтобы скачать "большое" кол-во файлов в майнКомпуктер. И папки целиком оно же не качает? Когда у кого может наступить такая ситуация? :)

 

Отдельный лайк за прогресс бар, но лучше сделать точечки, как предложил Давиал - сильно аляписто там та лепешка смотрится в консольке. У apple, и то точечки, а тут в ОС-ке каком-то "графон")

Также высока вероятность при игровом процессе угона учетки от фтп (как и в майнОси ECS от ВК) Такие проги чреваты для майна нехорошими последствиями чисто гипотетически. 



#12 Оффлайн   swg2you

swg2you
  • Пользователи
  • Сообщений: 268
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.

Награды

              

Отправлено 26 Июль 2016 - 22:35

..никто не будет поднимать фтп сервер.. ..высока вероятность .. угона учетки..

Есть тьма публичных фтп помоек хранилищ и проблема кражи логопары, в данном случае, неактуальна.

 

А так да, верно подмечено, и было бы хорошим тоном выводить дисклеймер в программе, типа "Ввод логопары небезопасен!!1111 Страх и риск, бла-бла-бла!111"

 

p.s. точечки рулят







Темы с аналогичным тегами ftp, opencomputer, os, бесплатное пиво, и сок, leshainc

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных