2010-07-05 1 views
8

Я разработал сайт social networking site for gardeners и заинтересован в предоставлении пользователям возможности добавлять изображения в свои «твиты».Как я могу позволить безопасно и недорого разрешать изображения на моем сайте?

Если я разрешаю им загружать изображения на фактический сайт, кажется, что это быстро станет дорогим (это побочный проект, который не финансируется никем, кроме меня и моих собственных навязчивых идей). Предположим, что сайт становится умеренно популярным, а пользователи 100K публикуют одно изображение в неделю, всего лишь 250K. Это (100000 * .1 * 52/1024) = 508 МБ/год в хранилище (и это не учитывает увеличенную пропускную способность). Кроме того, мне пришлось бы увеличить нагрузку на сервер для масштабирования изображений. Я не уверен, что мне следует продолжить это, или если есть лучшие возможности.

Ссылка на другие сайты выглядит по-другому. У вас есть неработающие ссылки, но для меня большая проблема - безопасность: XSS.

Приложение находится на Rails 3, используя MongoDB/Mongoid в качестве бэкэнд, если это имеет значение.

Я ищу решение, такие как:

  • API, которые хранят изображения на внешних сайтах. Идеально было бы возможность загрузить его на мой сайт и сделать вызов API, чтобы сохранить его на внешнем сайте.
  • API (возможно, Javascript API), которые позволяют легко подключаться к одному или нескольким сайтам, размещенным на внешнем изображении.
  • Markdown или аналогичная разметка, позволяющая надежно связываться с внешними изображениями. Я заинтересован в том, чтобы предоставить пользователям возможность форматировать свои сообщения ограниченным образом, поэтому это может одновременно решить две проблемы. Я замечаю, что это то, что делает Stack Overflow.
  • Библиотеки безопасности, отображающие URL-адрес URL-адреса белого списка
  • Рекомендации по поводу того, почему я думаю об этой проблеме неправильно. Например, возможно, я просто должен хранить изображения. 500 МБ в год действительно не так дорого, и это позволяет мне создавать очень чистый пользовательский интерфейс.

Мои цели (в порядке убывания): - Безопасно, как для моего собственного сайта, а также не допускать XSS атаки на другие сайты - наилучший опыт пользователя - Простота в обслуживании и реализации

Что вы сделали, чтобы разрешить пользовательские изображения на вашем сайте?

ответ

2

Почему не использовать услугу, как Amazon s3?Дешево, очень дешево (с уменьшенным хранилищем избыточности), а самые важные плагины, такие как Paperclip, поддерживают его из коробки ...

+0

Что я собирался сказать. 508 МБ в хранилище будет составлять около $ 1 на S3. –

4

Вы неправильно думаете о проблеме;) или, скорее, не в нужное время.

Не беспокойтесь о полосе пропускания сейчас, когда у вас еще не так много пользователей. Сосредоточьтесь на том, чтобы сделать сайт удобным и популярным. Производительность, пропускная способность, дисковое пространство - это то, над чем вы будете работать, когда возникнут проблемы. К тому моменту, когда у вас есть 100 тыс. Пользователей, стоимость покупки этого места и пропускной способности, скажем, Amazon S3, может и не быть проблемой.

+3

Я понимаю, что задержка при оптимизации полосы пропускания может быть разумной, но это, конечно, не слишком скоро чтобы научиться правильно кодировать код. – pc1oad1etter

+0

Хотя это правда, все, что он делал тогда, переводит проблему, когда сайт используется много и перерастает исходный сервер, тогда ему придется исправить его, поддерживая активных пользователей. Было бы лучше решить его сейчас. – Arcath

+0

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

0

Вам нужно будет посмотреть на хосты изображений (0) и посмотреть, применимо ли ваше использование. Flickr имеет API, не уверен, что другие просто ищут HOST api.

Flickrs апи находится по адресу: http://www.flickr.com/services/api/

+0

Спасибо, Аркат. Я просмотрел Flickr и пару других альтернатив. Flickr должен быть некоммерческим для бесплатного использования, хотя Picassa разрешает коммерческое использование. – Jade

+0

Кстати, я не смог оставить комментарий выше, потому что кнопка «Добавить комментарий» появляется под ссылками правой руки. Но спасибо Андреа и Тоби! – Jade