PDA

Просмотр полной версии : Интересует мнение по проблеме


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
когда пользователь грузит файл, ты просто в фоновом режиме отправляй его на третий сервер

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

Скажем, так
define('FILE_DIR', 'home/html/files/');

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


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

ReduKToR
08.05.2010, 18:26
Храни изображения в бд) а не в файлах
Доступ к бд как ты говоришь реализован!

serg-php
10.05.2010, 21:31
ReduKToR

Храни изображения в бд) а не в файлах Доступ к бд как ты говоришь реализован!

В базе хранить не есть хорошо!

Тем более, что файлы всерднем метровые!

Это что базу в 5 гигов делать?

m0Hze
10.05.2010, 22:20
ReduKToR



В базе хранить не есть хорошо!

Тем более, что файлы всерднем метровые!

Это что базу в 5 гигов делать?
Ну если с самого начала не продумал такие мелочи, то возможно и в 5г будет база.
Я бы все же в фоне грузил на нужный файл-сервер, при помощи php такое реализуется нетрудно.

serg-php
11.05.2010, 00:35
Я бы все же в фоне грузил на нужный файл-сервер, при помощи php такое реализуется нетрудно.


Не совсем представляю, как это средставами пхп?

Образец бы!