|
|
|
Хранение большого количества фотографий пользователя
|
|||
|---|---|---|---|
|
#18+
Добрый день! При разработке проекта возникла проблема с хранением пользовательских фотографий. Ситуация следующая: есть два взаимосвязанных проекта, которые используют WCF сервис для взаимодействия друг с другом (обмен пользовательскими данными и прочее). Соответственно есть 2 базы данных(которые будут храниться на 2 разных серверах). Под каждый сайт будет выделенно несколько разных серверов для распределения нагрузки. У пользователя есть возможность загружать свои фотографии... Вот тут и возникла следующая проблема: если сайт храниться на нескольких серверах, сохранять фотографии локально - не выход (я думаю понятно почему). Было придумано несколько вариантов решения данной проблемы: 1) Использовать базу для хранения фотографий (конечно не самый лучший вариант, но все таки как временную альтернативу мы его рассматриваем) 2) Использовать отделный домен и сервер для хранения фотографий, а ссылку на фото сохранять в базу. Но тут возник вопрос - КАК ИХ ЗАЛИВАТЬ на отдельный удаленный сервер???? Было рассмотрено использование WCF службы для передачи фотографии и сохранения ее на текущем сервере. Но с точки зрения логики, быстродейсвия и прочего это не самый лучший вариант. Использование сокетов для передачи даже не рассматривалось! Идеальным решением было бы использовать технологию Azure, однако с учетом коротких сроков, использовать ее сейчас никак не получается. На следующих этапах разработки, первым делом будет рассмотрен переход к этой технологии. Сейчас нужно временное, наиболее подходящее решение. Нагрузка на каждый сайт планируется очень большая. Вначале это будет от 5000-10000 человек. Выскажите, пожалуйста, свое мнение по этому поводу. У кого есть какие идеи? Буду очень признательна за любую помощь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2012, 17:10 |
|
||
|
Хранение большого количества фотографий пользователя
|
|||
|---|---|---|---|
|
#18+
M0K, самое простое - прсто выкладывать туда фотки, либо по FTP, либо: Код: c# 1. Быть может как самый быстрый вариант - хранить все фотки в одном из этих проектов Хранение в БД крайне не рекомендую (большая нагрузка на трансфер) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2012, 18:02 |
|
||
|
Хранение большого количества фотографий пользователя
|
|||
|---|---|---|---|
|
#18+
SQL Server FileStream ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2012, 21:08 |
|
||
|
Хранение большого количества фотографий пользователя
|
|||
|---|---|---|---|
|
#18+
МСУSQL Server FileStream Я понимаю, что файл будут храниться не в файлах БД (mdf или что там, поправьте если ошибаюсь), но разве это "с точки зрения быстродействия" сильно поможет? Есть несколько серверов. Чтобы передать файл пользователю должна произойти передача файла от сервера БД к серверу веб-приложения, а потом уже-пользователю На мой взгляд двойную передачу нужно убрать, имхо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2012, 00:22 |
|
||
|
Хранение большого количества фотографий пользователя
|
|||
|---|---|---|---|
|
#18+
ftp budet luchshim variantom Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2012, 01:33 |
|
||
|
Хранение большого количества фотографий пользователя
|
|||
|---|---|---|---|
|
#18+
SanSYSЯ понимаю, что файл будут храниться не в файлах БД (mdf или что там, поправьте если ошибаюсь), но разве это "с точки зрения быстродействия" сильно поможет? Поможет. Причем сильно. SanSYSЕсть несколько серверов. Чтобы передать файл пользователю должна произойти передача файла от сервера БД к серверу веб-приложения, а потом уже-пользователю Файловый поток сиквел сервера как-раз решает эту задачу. SanSYSНа мой взгляд двойную передачу нужно убрать, имхо Какую двойную передачу? В первом случае мы имеем дело просто с потоковой ссылкой , в другом случае мы отдаем пользователю готовый файл. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2012, 09:40 |
|
||
|
Хранение большого количества фотографий пользователя
|
|||
|---|---|---|---|
|
#18+
МСУ, не-не, понятно что FileStream гораздо удобнее чем BLOB, замечание в другом: ведь данные из SQL-сервера передадутся web-приложению, а потом уже конечному клиенту (браузеру)? Или там врубили какое-то "волшебство", что файлы из SQL-сервера будут передаваться минуя web-сервер и передаваться сразу браузеру? P.S.: меня действительно интересует этот двойной вопрос P.P.S.: МСУ, я терпеть вас не могу, теперь в выходные доп. литру читать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2012, 10:32 |
|
||
|
Хранение большого количества фотографий пользователя
|
|||
|---|---|---|---|
|
#18+
SanSYSведь данные из SQL-сервера передадутся web-приложению, а потом уже конечному клиенту (браузеру)? Я же уже сказал - "ссылка" (stream). А по "ссылке" мы получим уже реальный файл web-для приложения. Никакого волшебства. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2012, 11:39 |
|
||
|
Хранение большого количества фотографий пользователя
|
|||
|---|---|---|---|
|
#18+
МСУSanSYSведь данные из SQL-сервера передадутся web-приложению, а потом уже конечному клиенту (браузеру)? Я же уже сказал - "ссылка" (stream). А по "ссылке" мы получим уже реальный файл web-для приложения. Никакого волшебства. вот, блин, а в потоке не данные передаются? Просто если читать поток из БД сразу в респонс, то все равно данные прогоняются от sql-сервера через сервер веб-приложения браузеру клиента, разве нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2012, 11:43 |
|
||
|
Хранение большого количества фотографий пользователя
|
|||
|---|---|---|---|
|
#18+
SanSYSвот, блин, а в потоке не данные передаются? Просто если читать поток из БД сразу в респонс, то все равно данные прогоняются от sql-сервера через сервер веб-приложения браузеру клиента, разве нет? Убейте себя об стену. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2012, 13:38 |
|
||
|
Хранение большого количества фотографий пользователя
|
|||
|---|---|---|---|
|
#18+
МСУSanSYSвот, блин, а в потоке не данные передаются? Просто если читать поток из БД сразу в респонс, то все равно данные прогоняются от sql-сервера через сервер веб-приложения браузеру клиента, разве нет? Убейте себя об стену. Соизвольте убиться сами ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2012, 13:40 |
|
||
|
Хранение большого количества фотографий пользователя
|
|||
|---|---|---|---|
|
#18+
SanSYSСоизвольте убиться сами Начните убиваться от сюда: Введение в FILESTREAM ...Он позволяет совместить оба подхода, преодолев недостатки каждого: хранить блобы в файловой системе, обеспечив клиенту к ним стриминговый доступ, с другой стороны вся работа с этими файлами происходит под полным контролем SQL Server, который обеспечивает по ним транзакционность, бэкап, полнотекст, репликацию, лог шиппинг, кластеризацию и прочие дела, за которые он обычно отвечает. Строго говоря, файлстрим не является типом. Это просто атрибут на блобовскую колонку, говорящий SQL Server хранить ее в виде отдельного файла. Размер блоба при этом ограничен только размерами тома. "Двойная передача" может быть только в Вашем воспаленном сознании, которое отказывается читать документацию, пробовать это на практике. Но с упорством подолжает спорить и задавать идиотские вопросы по десять раз. Постройте кирпичную стену и убейтесь об нее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2012, 13:44 |
|
||
|
Хранение большого количества фотографий пользователя
|
|||
|---|---|---|---|
|
#18+
SanSYSМСУпропущено... Я же уже сказал - "ссылка" (stream). А по "ссылке" мы получим уже реальный файл web-для приложения. Никакого волшебства. вот, блин, а в потоке не данные передаются? Просто если читать поток из БД сразу в респонс, то все равно данные прогоняются от sql-сервера через сервер веб-приложения браузеру клиента, разве нет? Может на отдельный сервер поставить *nix + nginx, отдавать файлы напрямую по url и не мучить себя никакими ms_sql-блобами/контейнерами и прочим? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2012, 13:45 |
|
||
|
Хранение большого количества фотографий пользователя
|
|||
|---|---|---|---|
|
#18+
st_stSanSYSпропущено... вот, блин, а в потоке не данные передаются? Просто если читать поток из БД сразу в респонс, то все равно данные прогоняются от sql-сервера через сервер веб-приложения браузеру клиента, разве нет? Может на отдельный сервер поставить *nix + nginx, отдавать файлы напрямую по url и не мучить себя никакими ms_sql-блобами/контейнерами и прочим? Я именно за подобное решение ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2012, 13:50 |
|
||
|
Хранение большого количества фотографий пользователя
|
|||
|---|---|---|---|
|
#18+
МСУ, Я же выше дал понять что доку читать буду в выходные, следственно мои вопросы можно либо игнорить, либо внятно отвечать, а не реагировать так неадекватно "Стримминговый доступ" это просто отлично, но если файл весит 500 метров, БД находится на серваке в калифорнии, сайт развернут в германии, пользователь из России, то чтобы передать файл пользователю поток должен будет пройти от бд к приложению, а после к пользователю. ну и что что поток, на мой взгляд приложение для передачи этого файла излишне, либо оно должно находиться в той же сети или даже машине что и сервер БД, чтобы не терять время на передаче данных от БД к приложению st_st прав, в том что лучше для этого отдельный сервер заюзать, отдавая пользователям ссылки на него, а заливать файлы по ftp как предлагает beha и все P.S.: Делаю вывод, что с вами бесполезно вести дискуссии, т.к. вы неминуемо принимаете их как споры полностью игнорируя доводы собеседника считая что лишь ваш ответ является единственно верным ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2012, 14:09 |
|
||
|
Хранение большого количества фотографий пользователя
|
|||
|---|---|---|---|
|
#18+
2ТС. Я бы хранил фотки в базе. Вот только меня смущает WCF, который ни пришей, ни пристегни. Вотки бы я отдавал через хендлер, который добывает их в базе. На клиентский компьютер передаётся пе через "приложение", а напрямую, типа <img src=....ashx?url=... /> Совершенно элементарное решение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2012, 14:11 |
|
||
|
Хранение большого количества фотографий пользователя
|
|||
|---|---|---|---|
|
#18+
SanSYSМСУ, Я же выше дал понять что доку читать буду в выходные, следственно мои вопросы можно либо игнорить, либо внятно отвечать, а не реагировать так неадекватно Вы можете хоть к новому году доку читать, зачем продолжать тупить по второму (третьему) разу? SanSYS"Стримминговый доступ" это просто отлично, но если файл весит 500 метров, БД находится на серваке в калифорнии, сайт развернут в германии, пользователь из России, то чтобы передать файл пользователю поток должен будет пройти от бд к приложению, а после к пользователю. Опять тупим? Кто мешает пробросить ссылку на хендлер с ID фотки, о котором вещает Серж? Хенлер будет располагаться при базе данных, чтобы разово отдать файло. Мозг окончательно заклинило? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2012, 14:24 |
|
||
|
Хранение большого количества фотографий пользователя
|
|||
|---|---|---|---|
|
#18+
МСУХенлер будет располагаться при базе данных, чтобы разово отдать файло Ясен пень при таком варианте FileStream самый удобный вариант При чем его я описал как раз перед сообщением ShSerge: SanSYSлибо оно должно находиться в той же сети или даже машине что и сервер БД, чтобы не терять время на передаче данных от БД к приложению По моему вы должны включить мозг :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2012, 14:31 |
|
||
|
Хранение большого количества фотографий пользователя
|
|||
|---|---|---|---|
|
#18+
более того - если отдается картинка и она не менялась, то можно браузеру сказать, чтобы он из кеша брал если есть ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2012, 14:33 |
|
||
|
Хранение большого количества фотографий пользователя
|
|||
|---|---|---|---|
|
#18+
МСУ, я в чем-то ошибся? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2012, 14:34 |
|
||
|
Хранение большого количества фотографий пользователя
|
|||
|---|---|---|---|
|
#18+
МСУ, что скажешь-то? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2012, 14:39 |
|
||
|
Хранение большого количества фотографий пользователя
|
|||
|---|---|---|---|
|
#18+
SanSYSЯсен пень при таком варианте FileStream самый удобный вариант При чем его я описал как раз перед сообщением ShSerge: Я с самого начала об этом писал: МСУКакую двойную передачу? В первом случае мы имеем дело просто с потоковой ссылкой, в другом случае мы отдаем пользователю готовый файл. ... и? Вы продолжаете же тупить. SanSYSПо моему вы должны включить мозг :) SanSYS, сынок, ты просто запутался в своих же дебрях, сгенеренных потоком твоего больного воображения. Так что не будем про мозг SanSYSМСУ, я в чем-то ошибся? В том, что не понимаете с первого слова и многое приходится разжевывать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2012, 14:50 |
|
||
|
Хранение большого количества фотографий пользователя
|
|||
|---|---|---|---|
|
#18+
МСУ, так в сабже говорится про "2 базы данных(которые будут храниться на 2 разных серверах)" и вы ни словом не обмолвились про то что приложение отдающее файл при FileStream должно находиться там же. т.е. дали совет который будет отлично и удобно работать при том условии которое вы не оговорили, но на коее я все время обращаю внимание ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2012, 14:57 |
|
||
|
Хранение большого количества фотографий пользователя
|
|||
|---|---|---|---|
|
#18+
МСУ, не вижу смысла с вами спорить, вы человек не умеющий принимать и вникать в рассуждения собеседника, имхо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2012, 15:00 |
|
||
|
Хранение большого количества фотографий пользователя
|
|||
|---|---|---|---|
|
#18+
SanSYSМСУ, так в сабже говорится про "2 базы данных(которые будут храниться на 2 разных серверах)" Хоть 10, это сути не меняет. SanSYSи вы ни словом не обмолвились про то что приложение отдающее файл при FileStream должно находиться там же. Я говорил о ссылке. А как и где ее использовать - другой вопрос. Ясен пень, что стриммер должен быть при ресурсе. Об этом нужно "обмолвиться"? Тогда - в сад. SanSYSт.е. дали совет который будет отлично и удобно работать при том условии которое вы не оговорили, но на коее я все время обращаю внимание Про сад уже сказал. SanSYSМСУ, не вижу смысла с вами спорить, вы человек не умеющий принимать и вникать в рассуждения собеседника, имхо SanSYS, спорьте с пенсионерами. С Вами не то, что спорить, а говорить дектруктивно. Тому живые примеры: 12202727 12204084 и сотня других. Вникать в "рассуждения" клиники не хочу. В сад. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2012, 15:28 |
|
||
|
|

start [/forum/topic.php?fid=18&msg=37695284&tid=1359825]: |
0ms |
get settings: |
7ms |
get forum list: |
18ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
393ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
58ms |
get tp. blocked users: |
2ms |
| others: | 203ms |
| total: | 706ms |

| 0 / 0 |
