Pull to refresh

Comments 50

Еще один?
Но… Зачем? Because I can? Нет, похвально конечно, но…
Буду благодарен, если вы поделитесь ссылками на аналогичные двухпанельные веб-файл менеджеры.
У dhtmlx есть похожее демо приложение двух-панельного файл менеджера на JavaScript (это, конечно, не полноценный продукт, но что-то похожее)
Я после долгих лет использования Total Commander перешел на Multi Commander. Все тоже самое, только бесплатно и с адекватной 64 битной версией. Хотя в последнее время много использую и Проводник. Благо его в Windows 8 довели наконец до удобоваримого вида.
Особенно радует, что автор осзнает недостатки архетектуры своего приложения и не усалчивает о них. Приятно читать техническую статью без маркетингового запаха. После таких статей хочется воскликуть Хабр — торт :)
Согласен с комментарием выше, но, автор, какое реальное применение этого менеджера? На локальном компьютере не получится, слишком много недостатков.
Показывать его пользователю сайта? Тогда он особо ничем не отличается от перечисленных вами же аналогов.
Кроме недостатков есть достоинства, благодаря чему его вполне можно использовать как на локальном компьютере, так и на удаленном. Одно из реальных применений: разработка приложений. Как я уже говорил, Cloud Commander пишется в самом себе (и эта статья тоже была написана в нём), он запущен на удаленном компьютере, я могу к нему подключится с любого браузера. На работе я использую локально установленную версию, и пишу в ней код связанный с текущими проектами.
Ладно, ваше дело, я просто выразил свое мнение, что нативные файловые менеджеры веб полноценно не заменит.
Кстати, добавьте к недостаткам: нет драг-н-дропа из одной панели в другую (win7, chrome 35, cloudcmd.jit.su/)
Да, это правда, драг-н-дропа из одной панели в другую пока нет, пул реквесты приветствуются.
чем это лучше доступа по ssh?
Во-первых, нет смены контекста, веб-разработчик может всё делать в браузере, не переключаясь между окнами и приложениями.
Во-вторых, поддержка Drag'n'Drop на уровне редактора и файлового менеджера и многие другие функции.
В-третьих, есть компьютеры, где нельзя устанавливать и запускать свои приложения, браузер, в свою очередь, есть везде.

А в целом, это не вытеснитель доступа по ssh, а взгляд с другой стороны.
ну, например включить в поставку админ-панели хостера и иметь нормальный файл-менеджер из коробки, а не те жуткие обрезки, которые обычно там поставляются
Посмотрите на файловый менеджер в Бегете — тоже двухпанельный
Вы имеете ввиду вот этот?

Скриншот
image

Выглядит очень неплохо, интересно было бы посмотреть что внутри. Он с закрытым кодом?
UFO just landed and posted this here
Какой-нибудь прогресс бы прикрутить, когда большие файлы открываешь…
А так — очень классная штука. Спасибо!
Да, согласен, этого действительно не хватает, думаю в будущем можно будет реализовать.
Одна из таких функций, это перемещение указателя текущего файла во время ввода имени.

В mc — ctrl +s.
Спасибо, не знал об этом, действительно очень удобно.
В 4.8.1 и этого не требуется: пишешь — курсор переходит
Умопотрясающая штука.

Её можно сделать ещё более умопотрясающею, если навесить этот код на интеловский движок node-webkit, который позволяет запускать код Node.js локально в окошке Chromium-подобного браузера. Тогда получится более полный аналог Total Commander в том смысле, что работать станет не на отдалённом сервере, а у себя на компьютере.
Поддерживаю! Запакуйте Cloud Commander в десктопную оболочку и цены ему не будет! Особенно на линуксах
Отличный проект. Скоро у нас будет всё в браузере, а все приложения окажутся замаскированными браузерами )
Думаю, совсем без сервера не-получится обойтись, поскольку основной нюанс не в том, каким способом обмениваться данными с сервером (сейчас, всё происходит по HTTP), а в том, как работать с файловой системой. К тому же, клиент-серверная архитектура даёт множество преимуществ: возможность удаленной работы, например.
С удаленными файловыми системами получается можно работать по (S)FTP/FISH… без посреднического сервера.
И для удаленной работы вполне подходит — у меня сейчас tmux сессия открыта и в xterm и в chrome — одна и та же сессия.
Запустил в ней mc — двухпанельный файлменеджер с неплохими возможностями. И в браузере.
Были бы иксы в браузере — запустил бы крусадер.
Кстати неплохая идея — сделать Xorg сервер в chrome. И вроде еще такого нет в природе.
В принципе да, если рассматривать вариант подключения по ftp, то вполне можно такое сделать.
Это можно сделать даже сейчас, если конвертировать посылаемые http-запросы серверу Cloud Commander в ftp-команды по TCP, тоже самое с приходящим ответом.
Вещь очень хорошая, но для полноценного использования для серверных целей не нашел двух вещей:
  • ограничения прав (хотя бы на уровне приложения, а на пользователей)
    • назначение root директории: только CWD или свой путь
    • скрывать определённые пути/папки через regexpы
    • ограничения функционала
  • использование менеджера как модуля. Помимо основного приложения, у нас есть админ-приложение, и хотелось бы встроить ваш менеджер, как connect middleware например, или просто запросы пробрасывать.

Есть ли эти фичи уже или возможно планируется работа по ним?
Подобных фич пока нету, но в будущем вполне возможно,
что Cloud Commander можно будет использовать как connect middleware, это было бы очень удобно.

Используемый функционал плавно переходит в независимые модули, таким образом появились:
Menu
Minify
Util-io
Pipe-io
Нужно обязательно также и в этом направлении двигаться: ограничение прав и midd прослойка. Иначе без первого, как по мне, вообще невозможно использовать commander на сервере — для этого есть sftp. Для десктопов есть родные менеджеры с более полным функционалом и портативными версиями. А вот для админ панелей подобная разработка подходит просто шикарно. Или я упускаю что-то?
И думаю вам не будет сложно сделать как минимум две вещи:
options: `rootPath`, `cmdEnabled`
exports.process = function(req, res, ctx /* current request options*/)
И вот с таким api уже можно делать многое.
В принципе, в будущем такое вполне возможно, по-поводу ограничения прав — тут немного сложнее, а вот middleware, думаю, это правильное направление.
Покрасить бы все в синий и будет Far в браузере. Я об этом мечатл
А главное, что для этого надо всего лишь поправить CSS файлик
Клёво. Нашел пару багов:
1. Не работают символические ссылки (на windows)
2. Нет возможности сменить диск (на windows)
3. Кнопка настроек (F10) не всегда срабатывает на клик (точнее только раз)

Сырая, конечно, приблуда, но очень прикольная. Буду рад, если получит развитие.
Спасибо за описание использованных технологий.
Спасибо, действительно, символические ссылки и на windows, и на linux воспринимаются как обычные файлы,
в будущем думаю можно будет это изменить.

По-поводу смены диска на windows, это очень существенный пункт, я раздумываю как это сделать, но пока с этим трудности, в плане:
1. Интерфейса файлового менеджера
2. Изменения REST
Ведь диски есть только на windows, в linux, mac os, freebsd и т.д. их нет и отображать их смысла нету.

По-поводу кнопки настроек, да, это правда, была такая ошибка, я сегодня исправил, спасибо.
Начало отличное. И код аккуратно и хорошо написан (правда, используются отступы в 4 пробела вместо канонических джаваскриптовых 2-х).
Будет интересно понаблюдать за развитием.

Один вопрос:
веб-сервер express который работает на порядок быстрее, чем встроенный;

Что имеется в виду? Какой встроенный?
Если зависимости Cloud Commander'a не установлены, он будет работать без них, и в качестве веб-сервера будет использоваться велосипед, который работает похожим образом, на гораздо проще. Конечно, express, гораздо лучше, стабильнее и эффективнее во всех планах, но, при желании, без него можно и обойтись.
Ну Express — это не HTTP-сервер, это утилита вокруг http-модуля самого Node. Что же там за велосипед, который умудряется так замедлить работу сервера?
Да, в общем-то, такая же утилита вокруг http-модуля, написанная лишь для того, что бы Cloud Commander можно было запустить сразу после скачивания исходного кода. Это может быть полезно, например, в местах где нет интернета, но есть исходный код файлового менеджера.
Спасибо за наводку по Pydio.Уже поселил на сервере и сравниваю с Owncloud.
Зачем он git запускает при старте? Особенно, если я поставил его через npm глобально?
Git запускает в целях получения последней версии, конечно, если Cloud Commander установлен через npm, в этом смысла нет. Я подумаю об этом, спасибо.
Увы, посмотреть не могу.
Связьнадзоровская заглушка Ростелекома :(
А в localStorage не мало места для кеширования? Почему IndexedDB не используете?
В принципе в localStorage вполне достаточно места для таких нужд. С indexedDB проблема в том, что она поддерживается не всеми браузерами, то есть, в идеале, стоит смотреть, что браузер поддерживает, и то использовать. Мне понравился проект localForage, который использует то, что доступно, предоставляя при этом унифицированный интерфейс. Но в процесе его использования, у меня возникла проблема с тем, что в режиме Инкогнито firefox, который поддерживает IndexedDB, выкидывает ошибку на открытие БД. Возможно сейчас этот баг пофиксили и всё должно работать хорошо. В целом, IndexedDB быстрее, поэтому её, конечно, лучше использовать.

Взаимодействие с localStorage в Cloud Commander'е происходит в файле storage.js. Пул реквесты приветствуются.
С indexedDB проблема в том, что она поддерживается не всеми браузерами

Кстати, забыл спросить: а какой набор браузеров официально поддерживается?

В целом, IndexedDB быстрее, поэтому её, конечно, лучше использовать.

Не уверен. Могу ошибаться, но исходя из размеров, localStorage хранится в оперативе, а IndexedDB — это работа с жестким диском.

Посмотрел код, приятно удивлен, что даже при работе с localStorage используются коллбэки. Подумаю на тему пуллреквеста.
> Кстати, забыл спросить: а какой набор браузеров официально поддерживается?
Все последние версии браузеров: Chrome, Firefox, Opera и IE (начиная с версии, которая поддерживает addEventListener, это, кажеться, 9).

В целях упрощения кода, было решено отказаться от всех условных комментариев и хаков для старых версий IE, поэтому те, которые не смогут обработать JavaScript и загрузить необходимые модули, будут работать без него (то есть, код будет генерироваться на сервере).

Если браузер что-то не поддерживает, подгружается файл с основными полифилами.
Sign up to leave a comment.

Articles