LINUX.ORG.RU

Хочу инфраструктуру расшаривания файлов по HTTP на своем сервере


0

1

Пусть есть сервачок с файлопомойкой (/media/files). На сервачке работает например апач, который не пускает всех в /media/files без определенного условия. Хочу следующее: для файла или директории из /media/files иметь возможность создать уникальную ссылку (http://server/sdSd76aSdjbl13n), при переходе на которую файл\содержимое директории становится доступным и его можно качать\смотреть. Что-то вроде способа расшаривания через ссылку в Google drive или в аналогах. Без уникальной ссылки разумеется доступа к шаре быть не должно. Ищутся любые способы реализации, победитель будет расчитываться по простоте солюшна.

★★★★★
Ответ на: комментарий от tazhate

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

jcd ★★★★★
() автор топика

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

jcd ★★★★★
() автор топика
Ответ на: комментарий от jcd

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

Каком формате, ты шо? Каком огороженном? Там все в опенсурсе и открытое. похапэ, мускуль, вебдав в кач-ве опции и тупо файлы на диске.

root@owncloud:/var/www/data/taz# ls
cache  files  files_versions  gallery
root@owncloud:/var/www/data/taz# ls files
clientsync  droid  music  Notes
root@owncloud:/var/www/data/taz# ls files/clientsync/
Снимок экрана 2013-01-23 в 11.35.41.png

tazhate ★★★★★
()
Ответ на: комментарий от jcd

апачу можно скармливать алиасы в рантайме?

service apache2 reload заставит его перечитать конфиг.

tazhate ★★★★★
()
Ответ на: комментарий от tazhate

Каком формате, ты шо? Каком огороженном?

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

service apache2 reload заставит его перечитать конфиг.

сам апач при этом не перезапускается, не рвёт готовые соединения?

jcd ★★★★★
() автор топика

Отключаешь листинг директории, делаешь скрипт, делающий симлинк с $ИМЯФАЙЛА на /var/www/многобукав.

PolarFox ★★★★★
()

Per-user web directories + символические ссылки.
Текстовый файл формата «каша каталог юзернейм1 юзернейм2 ... юзернеймN»
При обращении на адрес http://server/каша в домашний каталог обратившегося юзернейма создается симлинк на каталог. Если юзернейм не в списке, то он идет лесом.

thesis ★★★★★
()
Ответ на: комментарий от PolarFox

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

jcd ★★★★★
() автор топика
Ответ на: комментарий от thesis

не подойдёт, потому что подразумевается, что все юзеры будут анонимными

но вариант с симлинками вполне подходит. единственное: как указать апачу, чтобы он не разрешал прямой доступ к каким-либо файлам в /media/files, но разрешал доступ из какого-нибудь /var/www/web-shares/ ?

jcd ★★★★★
() автор топика
Ответ на: комментарий от jcd

Ничего не понял. У меня lighttpd смотрит в /var/www, где есть симлинк share → /home/denis/share. В /home/denis/share есть симлинки на то, что я хочу быстро показать миру. И всё работает. Не думаю, что в апаче будет иначе.

PolarFox ★★★★★
()
Последнее исправление: PolarFox (всего исправлений: 1)
Ответ на: комментарий от jcd

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

Хз, сейчас это тупо директории тупо с файлами, которые ты залил.

сам апач при этом не перезапускается, не рвёт готовые соединения?

Нет, он просто перечитывает конфиг.

tazhate ★★★★★
()
Ответ на: комментарий от jcd

все юзеры будут анонимными

А как думаешь разруливать право читать каталог? Вот он расшарился кем-то одним, и все туда кааак ломанулись. Или так и надо?
Насчет ограничения доступа не понял. Что значит «заходить ИЗ»?

thesis ★★★★★
()
Ответ на: комментарий от jcd

сам апач при этом не перезапускается, не рвёт готовые соединения?

Если у тебя там будет статика, то тогда service nginx reload ;)

tazhate ★★★★★
()
Ответ на: комментарий от PolarFox

значит /home/denis/share у тебя расшарен в настройках lighttpd, иначе лайти не смог бы выдать требуемый файл, или ты запускаешь его из-под рута. а что, если например share/../ ?

jcd ★★★★★
() автор топика
Ответ на: комментарий от thesis

А как думаешь разруливать право читать каталог?

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

jcd ★★★★★
() автор топика
Ответ на: комментарий от jcd

или ты запускаешь его из-под рута

server.username = "www-data"

а что, если например share/../ ?

Переходит на / сервера. Если /share/симлинк/../, то переходит на /share/.

PolarFox ★★★★★
()

запилил с символическими ссылками, работает. всем спасибо.

jcd ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.