Скачивание файлов с фтп через сайт

shukrd

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

Каким образом это можно реализовать?
 

tz-lom

Продвинутый новичок
если сайт и ФТП это один сервер то всё просто - проверяешь пользователя на права доступа и отдаёшь файл если такие права у него есть
если это разные машины следует пересмотреть архитектуру системы
 

shukrd

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

если сайт и ФТП это один сервер то всё просто - проверяешь пользователя на права доступа и отдаёшь файл если такие права у него есть
если это разные машины следует пересмотреть архитектуру системы
это две разные машины. Поясните, пожалуйста, по поводу пересмотра архитектуры. что конкретно Вы предлагаете?
 

shukrd

Новичок
что мешает файлы старее нескольких часов удалять по расписанию?
понимаете в чем дело. если одновременно будут скачиваться несколько файлов, то может произойти (и происходило) одномоментное заполнение места. так что у нас может и не оказаться нескольких часов в запасе. даже получаса.

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

tz-lom

Продвинутый новичок
ну,лучше всего поставить веб морду на машину с файлами (а с сайта делать редирект на скачку с нужной машины)
унылый вариант - возвращать URL с путём до FTP (куда уже вбит логин и пароль) , но это черевато лишними посетителями ФТП в обход системы ограничений

а вообще что то мне подсказывает что ФТП не ваш и тут идёт нездоровая тема "как раздавать чужие файлы"
 

shukrd

Новичок
ну,лучше всего поставить веб морду на машину с файлами (а с сайта делать редирект на скачку с нужной машины)
унылый вариант - возвращать URL с путём до FTP (куда уже вбит логин и пароль) , но это черевато лишними посетителями ФТП в обход системы ограничений

а вообще что то мне подсказывает что ФТП не ваш и тут идёт нездоровая тема "как раздавать чужие файлы"
что-то Вас обманывает )))) фтп наш, а хостинг не наш (свой вебсервер мы будем поднимать еще не скоро)

интересует, каким образом через свой сайт, скачивать с фтп
 

tz-lom

Продвинутый новичок
если FTP ваш то почему бы на нём веб морду и не запустить?
не полноценную,а только на отдачу файлов
ну и если очень хочется то можно организовать подтверждение права на отдачу файла,например регистрация уникальных одноразовых ссылок на скачивание
это в любом случае лучше чем гонять сотни траффика между веб сервером и FTP
P.S.
как вариант,если траффик для вас не проблема, - NFS
 

shukrd

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

tz-lom

Продвинутый новичок
вариант схемы работы:

пользователь кликает на ссылку "скачать файл" на сайте
сайт проверяет право на загрузку , дёргает вебку FTP сервера (или каким либо другим образом сообщает) на предмет "запомни {id -> file}" где id - сгенерённый случайный уникальный ID загрузки
пользователя редиректят на ссылку на вебку FTP сервера с этим ID в виде параметра
вебка FTP сервера получает запрос, проверяет ID , удаляет его из списка разрешённых и начинает отдавать файл
 

cDLEON

Онанист РНРСlub
Самый простой вариант - "зарегистрированному пользователю" давать аккаунт на фтп
 
Сверху