Тюнинг для папки Public в Dropbox

Dropbox — это просто замечательный сервис. Бесплатные 2 гигабайта, синхронизация между несколькими компьютерами и мобильными устройствами под различными ОС. А сколько различных применений находят ему народные умельцы не счесть — это и автоматизация торрент-загрузок, и сайты-визитки, и даже программные RAID-массивы.

Однако, такое простое задание как поделится файлами с незарегистрированным пользователем будет весьма накладно: придется давать ссылку на каждый файл (предварительно поместив их в папку Public), который требуется передать. Поэтому Вы наверняка воспользуетесь либо одним из известных файлообменников или же простой электронной почтой. Но почему бы не организовать такой файл-хостинг с удобным интерфейсом у себя в Dropbox?

Те, кто близко знаком с папкой Public в Dropbox знают, что public ссылки на файлы полностью сохраняют относительные пути файлов. Они имеют вид dl.dropbox.com/u/user_id/{путь_в_папке_public}. Этим фактом пользуются при создании сайтов-визиток и блогов на Dropbox. Но допустим, что существует достаточно большое количество файлов и папок с достаточно сложной структурой, которыми хотелось бы поделиться. Причем, не обязательно всеми файлами, а предложить выбрать пользователю именно то, что ему нужно. Логичное решение — создать «файл-карту» с соответствующими адресами и ссылками на файлы. Но как создать полное дерево каталогов с необходимыми ссылками? В Linux на помощь придет команда tree с ключом -H. В Windows встроенных средств для этого нет (да, тут тоже есть команда tree, но подставлять ссылки она не умеет). Конечно, можно попытаться написать свой собственный рекурсивный скрипт, который будет эмулировать линуксовский tree -H: проходить по папкам, подставлять ссылки, выводить все это в файл, но давайте согласимся, что кому-то не хватит умений и знаний, а иногда и просто свободного времени на написание, отладку и поддержку.

Одно из решений нам предлагает пользователь Dropbox Eliphas Q. и его детище — pyndexer.

Что такое pyndexer?


Pyndexer — это скрипт на Python, который создает список Ваших файлов, которые находятся в папке Public.

Скрипт рекурсивно исследует папки, указанные в файле настроек и создает index.html файлы в каждом каталоге. Созданные файлы подхватывает уже сам Dropbox и синхронизирует с облаком. Таким образом, каждая папка в представлении pyndexer — это отдельный index.html файл, между которыми и происходит навигация (такой своеобразный персональный FTP в облаке Dropbox).

Скрипт поддерживает большое число типов файлов, причем можно добавить свои, слегка подправив код. Кроме того, он умеет игнорировать некоторые из папок или закрывать доступ к ним с помощью пароля, встроенный jwplayer может воспроизводить аудио и видео файлы (по умолчанию mp3 и mp4), а также прикреплять readme в footer страницы-листинга. Даже если и этого мало, то можно прикрутить еще и Google Analytics.

Как начать использовать?


Скрипт успешно работает в Linux, Mac OS X и Windows (у меня скомпилированный .exe никак не хотел работать, поэтому потребовалась установка среды Python).

Установка в Linux:
cd ~/Dropbox/Public
wget http://dl.getdropbox.com/u/552/pyndexer/pyndexer.py
chmod +x pyndexer.py
python pyndexer.py

Установка в Windows:
1. При отсутствии среды Python загружаем скомпилированный .exe. Иначе нам потребуется просто сам скрипт.
2. Запускаем в папке Public.

После запуска скрипт загрузит для себя файл конфигурации pyndexer.ini и шаблон pyndexer.template.html. Непосредственно в pyndexer.ini нужно указать абсолютный путь к папке Public (это необходимо из-за шифрования путей в Dropbox 1.2.x и выше), а также в квадратный скобках относительные пути директорий, которые необходимо проиндексировать.

Например, я хочу проиндексировать две папки (Somethings и Savegames), но хочу поставить пароль на Somethings, и не индексировать в ней подпапку NotSoPublic; а в папке Savegames, я хочу показать текст после списка файлов, который находится в другом файле sometext.txt. Тогда в файле pyndexer.ini следует указать:
[Somethings]
password=ItsSecret
[Somethings/NoSoPublic]
skipdir=yes
[Savegames]
readme=sometext.txt


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

Также предусмотрена возможность приглашения рефералов (ссылка-логотип Dropbox вверху списка файлов). Ссылкой управляет параметр dropbox_referrer в файле pyndexer.ini.

После окончания работы скрипта, даем ссылку (public link) на index.html в любом каталоге и пользуемся приятным веб-интерфейсом в стиле Dropbox.

Полное описание скрипта и возможные трудности при работе можно найти в readme файле от автора.

Ссылки:
  1. Демо от автора
  2. Сам скрипт (версия 1.2)
  3. Readme по скрипту
  4. Обсуждение на форуме Dropbox
Share post

Similar posts

AdBlock has stolen the banner, but banners are not teeth — they will be back

More
Ads

Comments 45

    –7
    Велосипедостроители, используйте wuala.
      +2
      давно бы уже перешел с dropbox на wuala, если бы не тормоза работы с файлами и редкие BSOD при копирование большого количества файлов
        +1
        Проверил, 400 КБайт/с средняя скорость на файле 700 метров. Не фонтан, конечно, но вполне неплохо для p2p шифрованного хранилища. А на счет BSOD — к счастью, давно не имею дела с windows.
          0
          Это если один файл, у меня на DB хранятся рабочие файлы, исходники, тулзы всякие и т.п. Когда начинается аплоад, то скорость падает до модемной.
        +2
        Возможно только у меня такая проблема, но файлик размером в пару мегабайт в Wuala заливается 1-2 минуты. Неприемлемые тормоза при больших объемах
        0
        >Этим фактом пользуются при создании сайтов-визиток и блогов на Dropbox.

        Давно уже нельзя сайты хостить в коробке.
          +1
          ну как видите демка работает )
            +1
            это у автора она работает, потому что он не в России
            0
            Можно, но очень быстро прикрывают эту возможность при злоупотреблениях, особенно бесплатным аккаунтам.
              +1
              xhtml отдаётся «как надо», проверял неделю назад на русском аккаунте (html показывал как plain/text
                0
                Мне на html 404 выдавал.
                0
                .xml тоже отдаётся, проверил только что)
              0
              Все это конечно круто, только на мой взгляд бессмысленно. У меня (да и у всех) очень быстро банят ссылки за зрезмерный траффик (HTTP 509). При этом траффик явно не заоблачный, не больше 10 соединений одновременно.
                +4
                Как бы в дропбоксе уже давно можно расшаривать папки, причем любые.
                Ваш КО.
                  +1
                  Их можно расшарить только для других зарегистрированных пользователей.
                    +3
                    Да ну…

                    db.tt/6yHNZ3fr
                      0
                      А как такое сделать?
                        0
                          0
                          У Вас платный аккаунт что-ли? У меня ничего подобного нет…
                          image
                            0
                            В папке Private попробуйте ;)
                              +2
                              Подтверждаю, тоже нет этого пункта меню. Пробовал в разных папках, разного уровня вложенности. Про папку Private не понял.
                                +1
                                Понял, как комрад ниже я стер Private папку после установки Dropbox. Печально…
                                  0
                                  У меня это работает с любой папкой в корне и с вложенными тоже.
                                  Аккаунт бесплатный. Но прокачен инвайтами.
                                  Такой линк я могу сделать не только на папку, но и на отдельный файл.
                                  Не работает это в папке Public, хотя саму папку я таким образом расшарил.
                                    +3
                                    Кажется решение есть! :)
                      +1
                      Прочитайте внимательней пост. Автор пишет:
                      поделится файлами с незарегистрированным пользователем

                      А «предложение» действительно только для зарегистрированных юзеров.
                      Так что ж обманчивый у вас КО ;)
                        +3
                        а так не катит db.tt/6yHNZ3fr
                          0
                          Эм… Сенкс, вспомнил. Но у меня это только в Private папке работает. В Public не хочет. Или так и задумано?
                            0
                            Видимо так и задумано, ведь Pablic и так расшарен для всех
                              0
                              На да, расшарен. Только папку целиком не покажешь.
                              Спасибо еще раз :)
                                0
                                сделайте для паблика шаред линк — и она будет просматриваться
                              0
                              Блин. Я вообще удалил Private почти сразу после установки. А просто создать папку «Private» не катит. Только что попробовал.
                                0
                                Попробуйте в корне тыкнуть «Show deleted files». Авось прокатит, хоть и не уверен.
                                  0
                                  Нет у меня папки Privat и все расшаривается, даже Pablic. А вот в папке Public уже ни чего, таким способом, не расшаривается, только стандартным.
                                  Кстати как такие шары убрать?
                                    0
                                    Мне тоже это интересно %)
                                    Покопался щас, никакого намека не нашел :( Похоже что никак. Только удалять :(
                                      0
                                      Убрать такие шары можно тут www.dropbox.com/share#tab:linked-items
                                        0
                                        Вот блин… А я думал это символьные ссылки :) Ну, т.е. у меня в никсах в папке дропа лежат не файлы/папки, а их симлинки и они как раз совпадают с папками расшаренными таким путем когда-то. Вот и подумал, что это симлинки :)
                                        Спасибо :)
                        –18
                        Поделюсь инвайтом (5 штук в наличие).
                          –1
                          Уважаемые, хабравчане! Речь шла о сервисе Dropbox.
                          (на почту стали приходить письма о просьбе инвайта на Хабр.)
                          Прошу прощения, если ввел кого-то в заблуждение.
                          +10
                          Кажется нашел как решить проблему с отсутствием пункта меню «Get Shareable Link». Подробней тут. Если кратко, судя по всему это новая фича и ее нужно включать отдельно. Для этого перейдите по ссылке www.dropbox.com/enable_shmodel

                          Мне помогло — ссылка появилась для всех папок кроме Public.
                            0
                            Видимо я тестовый билд ставил и эта опция сама включилась.
                            Убрать такие шары можно тут www.dropbox.com/share#tab:linked-items
                              0
                              Спасибо за информацию!
                                0
                                Ссылка перенаправляет на home, теперь (после открытия ссылки) у меня в веб интерфейсе будто бы нет файлов( Расшаривания как не было так и нет(
                              • UFO just landed and posted this here
                                • UFO just landed and posted this here
                                    0
                                    Еще варианты удобного использования дропбокса как файлхостинга — это DropPages или активировав стандартные средства Дропбокса.

                                    Only users with full accounts can post comments. Log in, please.