2010-07-05 14 views
8

Ich habe eine social networking site for gardeners Website entwickelt und bin daran interessiert, Benutzern die Möglichkeit zu geben, Bilder zu ihren "Tweets" hinzuzufügen.Wie kann ich Bilder auf meiner Website sicher und kostengünstig zulassen?

Wenn ich ihnen erlaube, Bilder auf die tatsächliche Seite hochzuladen, scheint es, als würde dies schnell teuer werden (dies ist ein Nebenprojekt, das von niemandem finanziert wird, außer mir und meinen eigenen Obsessionen). Nehmen wir an, die Website wird mäßig populär, wobei 100.000 Nutzer ein Bild pro Woche mit einer Größe von nur 250K veröffentlichen. Das ist (100000 * .1 * 52/1024) = 508 MB/Jahr im Speicher (und das berücksichtigt keine erhöhte Bandbreite). Außerdem müsste ich die Serverlast erhöhen, um die Bilder zu skalieren. Ich bin mir nicht sicher, ob ich damit weitermachen soll oder ob es bessere Möglichkeiten gibt.

Die Verknüpfung mit anderen Websites scheint in mancher Hinsicht besser zu sein. Sie haben defekte Links, aber eine größere Sorge für mich ist Sicherheit: XSS.

Die Anwendung ist auf Rails 3, mit MongoDB/Mongoid als Backend, wenn das von Bedeutung ist.

Ich bin auf der Suche nach Lösungen, wie zum Beispiel:

  • APIs, die Bilder auf externen Websites speichern. Was wäre ideal, ist die Möglichkeit, es auf meine Website zu laden und einen API-Aufruf zu machen, um es auf einer externen Site zu speichern.
  • APIs (möglicherweise Javascript-APIs), die den sicheren Anschluss an eine oder mehrere externe Bildhosting-Sites erleichtern.
  • Markdown oder ähnliches Markup, die eine sichere Verknüpfung mit externen Bildern ermöglichen. Ich bin daran interessiert, Benutzern die Möglichkeit zu geben, ihre Beiträge auf begrenzte Weise zu formatieren, so dass dadurch zwei Probleme gleichzeitig gelöst werden können. Ich merke, dass dies der Stack Overflow ist.
  • Sicherheitsbibliotheken, die Bild-URL-Muster auf die weiße Liste setzen
  • Ratschläge, warum ich über dieses Problem falsch nachdenke. Zum Beispiel, vielleicht sollte ich nur die Bilder speichern. 500 MB pro Jahr sind wirklich nicht so teuer und erlauben mir eine sehr saubere Benutzererfahrung.

Meine Ziele sind (in der Reihenfolge): - Sicher, sowohl für meine eigene Website, und nicht XSS Angriffe auf andere Websites zu ermöglichen - Bestmögliche User Experience - Leicht zu pflegen und zu implementieren

Was haben Sie unternommen, um von Benutzern bereitgestellte Bilder auf Ihrer Website zuzulassen?

Antwort

2

Warum nicht einen Dienst wie Amazon S3 verwenden?Ist billig, sehr billig (mit der Reduced Redundancy Storage), und die wichtigsten Plugins wie Paperclip unterstützen es aus der Box ...

+0

Was ich sagen wollte. 508MB im Speicher würden bei S3 ungefähr $ 1 kosten. –

4

Sie denken über das Problem falsch;) oder eher nicht zur richtigen Zeit.

Mach dir keine Sorgen über die Bandbreite jetzt, wenn Sie noch nicht so viele Benutzer haben. Konzentrieren Sie sich darauf, die Website benutzerfreundlich und beliebt zu machen. Leistung, Bandbreite, Speicherplatz - das sind die Dinge, an denen Sie arbeiten, wenn sie zu Problemen werden. Zu der Zeit, wenn Sie 100.000 Benutzer haben, die Kosten für den Kauf dieser Speicherplatz und Bandbreite auf, sagen wir, Amazon S3 möglicherweise kein Problem mehr.

+3

Ich verstehe, dass Verzögerung bei der Optimierung für die Bandbreite sinnvoll sein kann, aber es ist sicherlich nicht zu früh um zu lernen, wie man sicher codiert. – pc1oad1etter

+0

Während dies der Fall ist, würde er das Problem nur dann beheben, wenn die Site viel benutzt und der ursprüngliche Server entwachsen ist. Er müsste es dann reparieren, während aktive Benutzer unterstützt werden. Wäre besser, es jetzt zu lösen. – Arcath

+0

yeah, sobald die Seite groß genug wird, haben Sie immer die Möglichkeit, einige Auswahlanzeigen auf der Website zu kleben und etwas Umsatz zu generieren, um die erhöhten Kosten zu bezahlen – stephenmurdoch

0

Sie müssen sich die T & C von Bild Hosts (Flickr etc ...) ansehen und sehen, ob Ihre Verwendung anwendbar ist. Flickr hat eine API, nicht sicher über die anderen nur nach HOST api suchen.

Flickrs api ist: http://www.flickr.com/services/api/

+0

Danke, Arcath. Ich habe Flickr und ein paar andere Alternativen angeschaut. Flickr darf nicht kommerziell für die kostenlose Nutzung sein, obwohl Picassa die kommerzielle Nutzung erlaubt. – Jade

+0

Übrigens konnte ich oben keinen Kommentar hinterlassen, da der Button "Kommentar hinzufügen" unter den rechten Links angezeigt wird. Aber danke Andrea und Toby! – Jade