Wie kann ich Bilder auf meiner Website sicher und kostengünstig zulassen?

8

Ich habe eine Website für soziale Netzwerke für Gärtner entwickelt und bin daran interessiert, Nutzern die Möglichkeit zu geben, Bilder zu ihren "Tweets" hinzuzufügen. .

Wenn ich ihnen erlaube, Bilder auf die tatsächliche Seite hochzuladen, scheint es, dass dies schnell teuer wird (dies ist ein Nebenprojekt, das von niemandem finanziert wird, nicht von 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 sollte, oder ob es bessere Möglichkeiten gibt.

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

Die Anwendung ist auf Rails 3 und verwendet MongoDB / Mongoid als Backend, wenn das wichtig ist.

Ich suche nach Lösungen wie:

  • 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, das eine sichere Verknüpfung mit externen Bildern ermöglicht. 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 stelle fest, dass dies 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 Reihenfolge):  - Sicher, sowohl für meine eigene Website, und um XSS-Angriffe gegen andere Websites nicht zuzulassen  - Bestmögliche Benutzererfahrung  - Einfach zu pflegen und zu implementieren

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

    
Jade 05.07.2010, 13:30
quelle

3 Antworten

2

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

    
Andrea 05.07.2010, 18:20
quelle
4

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

Machen Sie sich jetzt keine Gedanken über die Bandbreite, 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. Mit der Zeit, in der Sie 100.000 Nutzer haben, sind die Kosten für den Kauf dieses Speicherplatzes und der Bandbreite beispielsweise bei Amazon S3 möglicherweise kein Problem mehr.

    
Matt 05.07.2010 14:52
quelle
0

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

Flickrs api ist bei: Ссылка

    
Arcath 05.07.2010 15:34
quelle