Форум на Kuban.ru (http://forums.kuban.ru/)
-   Сети и их администрирование (http://forums.kuban.ru/f1029/)
-   -   Имеется ли решение задачи ? Файлы больших объемов (http://forums.kuban.ru/f1029/imeetsya_li_reshenie_zadachi_fajly_bol-shih_ob-emov-3386759.html)

krotov 04.12.2012 16:56

какая вебморда?
[em]Да нет. Ну вот есть необходимость пулять по почте большие файлы. Такова особенность бизнеса. Что бы хотелось : Пользователь отправляет. Сам файл попадает на защищенный сервер, скажем фтп. И ждет пока его заберут. А получатель получает :) только ссылку и пароль :)[/em]
Я это понимаю буквально: пользователя не парит размер файла, он в клиенте (в данном случае старенький аутлук) выбирает файл, абсолютно не парясь по его размеру и отправляет адресату, по пути что-то происходит и адресату приходит ссылка со ссылкой на файл (ftp, http, какой-нибудь другой tp -- не важно) и логином/паролем, ну или ссылка содержащая логин/ пароль, когда адресат скачивает файл, он (файл, не адресат) автоматически удаляется с сервера.
Я так понял задачу.

Квадратный Круг 04.12.2012 16:57

39-pinya > В общем и целом да, но между [em]Юзер драг-дропает файл[/em] и [em]В ответ открывается браузер со ссылкой для скачивания файла[/em] может пройти значительное время, поскольку серверу ещё "всосать" в себя файл(ы) надо и запаковать их (если их >1).

lithium 04.12.2012 16:59

зачем городить огород с паролями на ftp, может проще выкусывать из письма вложения (как это делать в случае Exchange сказать не могу), класть их в папку, доступную по http (но без листинга), а в письмо класть ссылку на страницу с адресом типа example.com/attachs/ZgfaLJ30F1 и на этой странице будет небольшой пояснительный текст и ссылка на скачивание файла? Случайное имя в адресе будет нормальной заменой паролю.

krotov 04.12.2012 17:02

Если же вопрос состоит в том, что бы просто как-то передать большой файл, то зачем какие-то веб-морды и прочие сложности для пользователя. Папка у него на рабочем столе эфтипишная, он туда переписывает нужный файл и отправляет адресату письмо по шаблону, где уже есть адрес/логин/пароль, а пользователю просто надо указать имя файла.
Ну и элементарный обработчик логов ftp сервера, в крон для никсов или в шедулер, или что там сейчас в винде, для удаления скаченных файлов.

Квадратный Круг 04.12.2012 17:02

43-lithium > Тоже нормальный вариант робота, только нужно ли лишний раз большие объёмы по smtp гонять... А так то всё идеологически верно - пользователь письмо с вложением роботу, а робот в ответ письмо со ссылкой. Ну и пара скриптов в cron для чистки устаревших файлов.

krotov 04.12.2012 17:08

43-lithium, без пароля не секьюрно. Может адресат через неделю почту прочитает, за это время файл может скачать тот, для кого он не предназначен. И даже скачает вероятнее всего. Не думаю, что за 5 лет моего неадминстава, с кулхацкерами что-то случилось.

krotov 04.12.2012 17:09

Квадратный Круг, а чем идеологически неверно гонять большие объемы по smtp?

lithium 04.12.2012 17:10

44-krotov >
1. ftp более проблемный протокол чем http
2. Придется создавать под каждого адресата пользователя ftp, т.к. если пользователь ftp будет создан под отправителя, то адресат сможет посмотреть все вложения конкретного отправителя и смотреть их в будущем, пока не поменяется пароль, а тут со сменой доп. сложности (пароль поменяли, а кто-то не успел скачать). Листинг каталогов может не получится запретить, т.к. не ясно, как на это будет реагировать различный софт.
3. Чем меньше пользователь что-то делает и чем больше что-то делает ПО -- тем лучше. Автоматизация, отсутствие обучения, отсутствие человеческого фактора.

lithium 04.12.2012 17:12

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

остается открытым вопрос, откуда кулхацкер узнает адрес скачивания, напоминаю, адрес типа example.com/attachs/ZgfaLJ30F1

krotov 04.12.2012 17:22

да, не посмотрел/не подумал, по поводу запрета листинга.
А так красиво, несложно и достаточно секьюрно. Не уверен, что существуют инструменты для выдирания и обработки из эксченьжа вложений (может и есть, я не знаю), но можно релей поставить и оттуда выдирать

gloomymen 04.12.2012 17:23

41-krotov > [em]пользователя не парит размер файла, он в клиенте (в данном случае старенький аутлук)[/em]
опять же почему нет?
во первых - в стареньком аутлуке есть фича по попилу писем выше определенного размера
если вебморда плохо тогда:
во вторых, ты забыл какой волшебный exim?)
принимаем письмо любого размера, выкусываем атач, кладем в уникальное место, делаем флаговый файл с указателем и причиндалами кому, далее крон смотрит наличие флагового файла, как вариант архивирует и пилит на части (если пользователи совсем деревянные), генерирует рэндомного ftp пользователя с паролем и отправляет письмо получателю со ссылкой и акаунтом
зы: плохо зная exim нарисовал бы такое за полдня, ну за день, главное путь-то ясен

alex419 04.12.2012 17:54

вчера на хоботе вот такую интересную програмулю увидел [url]http://www.ixbt.com/news/soft/archive.shtml?2012/1203#id163430[/url], может автору темы подойдет такое решение

alex419 04.12.2012 17:55

FrostWire v.5.5.0 - P2P-программа для обмена файлами

Квадратный Круг 04.12.2012 18:26

47-krotov > А он и сам как протокол для этого не очень и лишний путь получается, ведь MTA в идеале будет стоят отдельно от раздающего ящика, значит будет лишняя передача от MTA к хранилищу. Плюс зачем засирать outbox у пользователя и spool mta?

Взвесил все за и против и пришёл к идеальному с моей точки зрения варианту - linux box с Samba, nginx и MTA на борту. У пользователя ярлык на SMB-шару на этом ящике, под каждого пользователя/отдел свой каталог в шаре. Пользователь создает в своем каталоге вложенный каталог и кладет туда файлы для передачи, раз в N минут скрипт обходит каталоги пользователей, если находит в них вложенные каталоги то архивирует их, перемещает, вписывает в include файл для nginx нужное, а пользователю отправляет письмо с ссылкой для скачивания.

nginx надо настроить с поддержкой докачки, а то адресаты проклянут при разрывах связи. И лимиты отдачи настроить, а то любители качать в 10 потоков положат весь канал.

Ну а удаление архивов тривиально.

Минус вижу пока один - как только адресат вставит ссылку в браузер о ней может пронюхать Yandex/Google и запустить на файл своего поискового бота. От этого надо защищаться.

Да и вообще вся эта тема далека от информационной безопасности. Безопасники за такой сервис по голове не погладят.

pinya 05.12.2012 13:12

(42) драгдроп передает ссылку на файл, да и файлы сейчас все зипованные, архивировать еще раз - смысла нет.
Так, что затраты времени - нулевые, при условии, что файлопомойка с заданным файлом примонтирована к веб серверу.
Если речь идет о работе юзера на локальной машине, без централизованного хранения данных, задачка чуть усложняется, но вполне выполнима.

Gochy 05.12.2012 13:24

вообще то примерно такие решения есть, но, "ц у к о" дораха

LeXX 05.12.2012 13:59

31-pinya >по поводу внесения в мускульную базу - что будет с базой после отправки 1000 файлов по 2-3 Гб? Это что, под сервис надо будет отдельный сервер ставить?

Тогда уж можно сделать проще: поставить апач, написать страницу с формой для загрузки и мылом заказчика, кодом генерить папку и .htaccess с именем/паролем, класть туда загружаемый файл и отправлять заказчику мыло с логином/паролем и именем файла.

pinya 05.12.2012 14:45

(57) в базе хранится только ссылка на файл в файлохранилище, "левый" путь и дата публикации.
Веб сервер запрошенный "левый" путь преобразует в ссылку на файл и отдаст его юзеру.

Все можно на обработчик 404 повесить. Найден файл - дать скачать. Не найден - 404.

Вот скрипт для драгдрпопанья под виндой:
== Start "" "C:\Program Files\Internet Explorer\iexplore.exe" [url]http://www.site.com?s=%1[/url] && exit ==

через get браузера передадим веб серверу имя файла %1, который "выкладываем" в веб, в ответ получим страничку со ссылкой и плюшками. Если веб сервер на линуксе, то и пофиг, лишь бы правильно кириллицу переварил. Типа, платформонезависимость.
Все, естессно, имхо.

pinya 05.12.2012 14:48

(57)+ во сути, да, но чтобы юзеру не копипастить - пусть драгэндропает. Иначе входное имя и выходную ссылку перепутают местами (может, у вас более квалифицированные юзеры, мои - не особо).

LeXX 05.12.2012 15:15

59-pinya >Дык не надо ничего копипастить, юзер заполняет только мыло получателя и указывает файл, который надо отправить. Остальное система сама делает.

Квадратный Круг 05.12.2012 15:25

Да хватит копья ломать, автору, видимо, готовое решение надо, а не идея, что можно сделать самому.

Vzhik 05.12.2012 15:35

извините не дочитал.
Я делал подобную задачу так:
файл кидается в папку на сервере, от туда его отправляет SendFile по почте на адрес назначенный для этой папки. При успешной отправке удается. Там с ящика забирается zerat'ом, кидется в определенную папку. Для этого дела можно и отдельный почтовый сервис поднять, чтоб не мусорить основной.
Просто по модему передавалось, нужна была надежность.

LeXX 05.12.2012 21:07

61-Квадратный Круг >Скорее всего :-)
А вообще тема интересная. Мы это разрулили регламентами, надо попробовать автоматизировать.

lithium 06.12.2012 13:22

если используется Thunderbird, то можно или использовать готовые сервисы для этого дела
[url]https://support.mozillamessaging.com/en-US/kb/filelink-large-attachments[/url]

либо сделать свой:
[url]https://addons.mozilla.org/ru/thunderbird/addon/webdav-for-filelink/[/url]

Radix0 08.12.2012 14:14

ownCloud, например.


Текущее время: 13:36. Часовой пояс GMT +3.