Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   Интересует мнение по проблеме (https://forum.antichat.xyz/showthread.php?t=198044)

serg-php 21.04.2010 17:31

Интересует мнение по проблеме
 
Ситуация!

Есть несколько сайтов на пхп на разных хостингах, в одном из сайтов есть общие мускульная база и директория с картинками. Базу и картинки используют все сайты,
причем через мод_рерайт удалось реализовать видимость того, что картинки находятся в базе именно этого сайта.

Все работает, но есть один момент - пользователь регится на одном из сайтом и желает загрузить картинку. Соответственно, картинка должна попасть в общую базу картинок, но эта база то на другом сервере.

Как здесь быть?


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

^_WhitE_DeMoN_^ 21.04.2010 19:26

Подобный проблем... Хочу реализовать mirror или backup сервер

serg-php 22.04.2010 14:06

^_WhitE_DeMoN_^,

Что Вариант только фтп?

m0Hze 22.04.2010 14:08

Ну, когда пользователь грузит файл, ты просто в фоновом режиме отправляй его на третий сервер, хотябы простым curl, или ftp, так будет попоще в некоторых смыслах.
А так, я бы создал что то проде, полноценного mirror-сервера.
//AJAX+jquery помоему может работать со сторонними доменами, так что можно прямо с браузера грузить на третий сервер. Не проверенно, но насколько я помню, такое возможно.

serg-php 22.04.2010 21:34

Цитата:

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

Скажем, так
PHP код:

define('FILE_DIR''home/html/files/'); 

еслибы заменить на


PHP код:

define('FILE_DIR''ftp://user:user@123.232.127.34/files/'); 

Будет ли такая конструкция работать?

$now 23.04.2010 00:12

Есть два подхода к проблеме.

1.Пользоваться одной базой, если юзер хочет что то загрузить, загружать именно в эту одну базу.

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

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

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

Какой способ использовать решать вам.

serg-php 23.04.2010 00:14

Цитата:

Пользоваться одной базой, если юзер хочет что то загрузить, загружатьименно в эту одну базу
Так об это-то и речь идет!

Выше привел конструкцию!

$now 23.04.2010 00:20

serg-php
Файлами между серверами лучше обмениваться по http - быстрее. Я бы написал RPC службу принимающую файлы - быстро и надежно.

serg-php 23.04.2010 15:10

$now,

твой вариант сильно сложен будет для меня!

А не проще ли вызвать пхп-форму с удаленного сервера
поместить ее в
<iframe height="898" allowTransparency="true" frameborder="0" scrolling="yes" style="width:90%;border:none" src="http://123.232.127.34/index.php?page=add"><a href="http://123.232.127.34/index.php?page=add">Загрузка файла</a></iframe>

serg-php 08.05.2010 15:27

Может ли помочь allow_url_fopen


Время: 17:18