Перейти к контенту
  • 0

Как перенести папку uploads


Pvp.all

Вопрос

Подскажите, знатоки, как можно перенести папку uploads на другой сервер, что-бы веб-морда ИПБ стояла на отдельном серваке, а все файлы/картинки качало на другой. В IP.Downloads можно вести загрузку по фтп на второй сервак, а вот с форумом нельзя...

 

вопрос отпадает

Ссылка на комментарий
Поделиться на других сайтах

Рекомендуемые сообщения

  • 0

С удовольствием подниму данный вопрос!

 

Хотелось бы вообще вложения держать на домашнем сервере, где стоимость Мб почти нулевая, а сам форум на надежном быстром хостинге. Конечно же желательно, чтобы превьюшки изображений хранились у хостера, но тоже не так критично.

 

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

Action формы загрузок Необязательно для заполнения

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

Пример значения поля: http://master.mysite.ru/forums

 

Неужели никто не занимался?

Ссылка на комментарий
Поделиться на других сайтах

  • 0
А у вас дома достаточно быстрый интернет для этого? ;)
Ссылка на комментарий
Поделиться на других сайтах

  • 0

А у вас дома достаточно быстрый интернет для этого? ;)

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

Вопрос только в том, как это организовать, точнее с чьей помощью ;)

Ссылка на комментарий
Поделиться на других сайтах

  • 0

И Вы готовы открыть свой домашний компьютер под загрузку файлов из интернет?

ИМХО, тут иначе можно поступить, но придется делать двойной механизм загрузки.

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

2. Модифицировать код отдачи аттачей. Добавить условие: если(файл_существует){отдавать как обычно;}иначе{отправить на юнит;}.

3. Периодически переносить по ФТП вручную файлы из папки загрузок на юнит.

Изменено пользователем FatCat
Ссылка на комментарий
Поделиться на других сайтах

  • 0

И Вы готовы открыть свой домашний компьютер под загрузку файлов из интернет?

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

 

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

Мне казалось, логичнее все-таки на Ubuntu Web-Server организовать, но может быть и проще с Оперой, просто с ней не сталкивался. Вопрос, что надежнее...

 

Модифицировать код отдачи аттачей.

А вот тут не можете подсказать поподробнее? Сам программист, но к сожалению, с PHP знаком лишь поверхностно, да и структуру форума только начинаю изучать. Буду очень благодарен.

 

FatCat, большое спасибо за совет! Быть может действительно проще переносить файлы вручную, чем перелопачивать полфорума :)

Ссылка на комментарий
Поделиться на других сайтах

  • 0
Модифицировать код отдачи аттачей.

А вот тут не можете подсказать поподробнее?

Могу на примере линейки 1.х.

В файле Topics.php работа с аттачами идет после строки if($row['attach_id']){.

Дальше надо сделать "развилку":

if(file_exists($ibforums->vars['upload_url']."/".$row['attach_id']))
{
   // Здесь весь имеющийся код работы с файлом.
}
else
{
   // Сюда пишем новые функции для работы с файлом на локальной машине или другом сервере.
}

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Это Вы все-таки о том, чтобы файлы сами загружались на другой сервер?

Я думал, что нужно всего лишь через условие заменить ссылку на файл в uploads (хостер) ссылкой на внешнем ресурсе (другом сервере).

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Нет, файлы грузятся пользователями в папку аплоадсов форума. Пока они там находятся, срабатывает условие if(file_exists($ibforums->vars['upload_url']."/".$row['attach_id'])) и всё работает так, как задумано в движке разработчиками.

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

Ссылка на комментарий
Поделиться на других сайтах

  • 0
Тогда я не понимаю, о каких функциях речь, если у меня в голове пока только веб-сервер с прямой ссылкой к файлу... Или нужно намудрить что-то с авторизацией?
Ссылка на комментарий
Поделиться на других сайтах

  • 0

Я думал, что нужно всего лишь через условие заменить ссылку на файл в uploads (хостер) ссылкой на внешнем ресурсе (другом сервере).

Посмотрите сколько всяких манипуляций производит движок с файлом прежде чем отдать в браузер. Это и проверка миме-типа, и проверка размеров картинок, и обращение к шаблону для генерации ХТМЛ-кода...

Простая подмена ссылки не прокатит.

Например, переменная $ibforums->vars['upload_url'] может иметь значение '/home/user/public_html/www/uploads'.

Подменой имени файла его урлом на юните, Вы получите не УРЛ вида http://user.operaunite.com/file.jpg; Вы получите кашу вида

/home/user/public_html/www/uploads/http://user.operaunite.com/file.jpg

 

То есть, вам нужны собственные коды работы с файлом на юните (или где там они будут лежать).

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Понял, что все равно все будет очень не просто, нужно разбираться дополнительно, особенно с PHP, чтобы дырок не наковырять.

 

За идею БОЛЬШОЕ спасибо! Буду думать над реализацией. Пока трудновато...

Изменено пользователем Bonov
Ссылка на комментарий
Поделиться на других сайтах

  • 0

Понял, что все равно все будет очень не просто

На самом деле сама "развилка" - это просто, и я всю ее написал.

Остальное зависит от того, где будут располагаться перенесенные файлы, какой к ним будет доступ и какими "рюшечками" захотите обвесить отображение аттачей в сообщениях и скачивание из сообщений. Это всё придется писать с нуля. При минимуме функционала (картинки показываем как есть, файлам текстовый линк на скачивание) и максимуме простоты доступа по http к файлам это будет буквально 2-3 строчки кода на php для картинок.

Сложнее для аттачей - тут придется модифицировать еще и файл attach.php, тоже потребуется "развилка".

Вместо

$file = $ibforums->vars['upload_dir']."/".$post['attach_id'];

будет код

if(file_exists($ibforums->vars['upload_url']."/".$row['attach_id']))$file = $ibforums->vars['upload_dir']."/".$post['attach_id'];
else $file = "http://user.operaunite.com/".$post['attach_id'];

Тоже вроде бы ничего особо сложного.

Изменено пользователем FatCat
Ссылка на комментарий
Поделиться на других сайтах

  • 0

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

 

Подскажите кто-нибудь пожалуйста, где в 3-ей версии код, отвечающий за отобращение вложений. Спасибо.

Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить на вопрос...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.