8
votes

Comment puis-je permettre de permettre aux images de manière sûre et pas cher sur mon site?

J'ai développé un Site de réseautage social pour les jardiniers Site Web et je suis intéressé à donner aux utilisateurs la possibilité d'ajouter images à leurs "tweets".

Si je leur permet de télécharger des images sur le site actuel, il semble que cela soit devenu coûteux (il s'agit d'un projet latéral, non financé par quelqu'un que moi et mes propres obsessions). Disons que le site devienne modérément populaire, avec 100k utilisateurs publiant une seule image par semaine, de seulement 250 000 personnes. C'est (100000 * .1 * 52/1024) = 508 Mo / an de stockage (et cela ne tient pas compte de la largeur de bande accrue). De plus, je devrais augmenter la charge du serveur pour réduire les images. Je ne suis pas sûr que je devais simplement aller de l'avant avec cela, ou s'il y a de meilleures possibilités.

La liaison à d'autres sites semble mieux à certains égards. Vous avez des liens brisés, mais une plus grande préoccupation pour moi est la sécurité: XSS.

L'application est sur les rails 3, à l'aide de MongoDB / Mongoid comme backend, si cela importe.

Je recherche des solutions telles que:

  • API qui stockent des images sur des sites externes. Ce qui serait idéal est la possibilité de la télécharger sur mon site et de créer un appel d'API pour la stocker sur un site externe.
  • API (peut-être des API JavaScript) qui facilitent le lien avec un ou plusieurs sites d'hébergement d'images externes de manière sécurisée.
  • Marquage ou marquage similaire permettant de relier fermement les images externes. Je suis intéressé à donner aux utilisateurs la possibilité de formater leurs postes de manière limitée. Cela pourrait donc résoudre deux problèmes en même temps. Je remarque que c'est ce que le débordement de la pile fait.
  • Bibliothèques de sécurité que les modèles d'URL d'image blanche d'image
  • Conseils sur la raison pour laquelle je pense à ce problème de problème. Par exemple, je devrais peut-être stocker les images. 500 Mo par an n'est vraiment pas si cher, et cela me permet de créer une expérience utilisateur très propre.

    Mes objectifs sont (dans l'ordre): - sécurisé, à la fois pour mon propre site, et de ne pas autoriser les attaques XSS contre d'autres sites - meilleure expérience utilisateur possible - Facile à entretenir et à mettre en œuvre

    Qu'avez-vous fait pour permettre aux images fournies par l'utilisateur sur votre site?


0 commentaires

3 Réponses :


4
votes

Vous pensez au problème de problème;) ou plutôt pas au bon moment.

Ne vous inquiétez pas de la bande passante maintenant, lorsque vous n'avez pas encore beaucoup d'utilisateurs. Concentrez-vous sur la création du site convivial et populaire en premier. Performance, bande passante, espace disque - Ce sont les choses que vous allez travailler quand elles deviennent des problèmes. Au moment où vous avez 100k utilisateurs, le coût de l'achat de cet espace et de la bande passante, par exemple, Amazon S3 ne peut plus être un problème.


4 commentaires

Je crois comprendre que le retardement sur l'optimisation de la bande passante peut être raisonnable, mais il n'est certainement pas trop tôt pour apprendre à coder en toute sécurité.


Bien que cela soit vrai, tout ce qu'il serait en train de faire le problème lorsque le site est utilisé beaucoup et dépassait le serveur d'origine, il devait alors la corriger tout en appuyant les utilisateurs actifs. Serait préférable de le résoudre maintenant.


Ouais, une fois que le site est suffisamment grand, vous avez toujours la possibilité de coller des annonces de choix sur le site et de générer des revenus pour payer les coûts accrus.


Je vois ton point, Matt, mais je suis vraiment content de poser la question. Je ne voulais pas maîtriser un code qui n'était pas sécurisé et / ou créer un gâchis pour moi quand il y avait une alternative facile plus tard. On dirait que la solution S3 + PaperClip peut être exactement ce que je cherchais.



0
votes

Vous devrez examiner le T & C des hôtes d'images (Flickr, etc.) et voir si votre utilisation est applicable. Flickr a une API, pas sûr des autres que les autres recherchent une API hôte.

L'API Flickrs est à: http://www.flickr.com/services/api/


2 commentaires

Merci, arcath. J'ai regardé dans Flickr et quelques autres alternatives. Flickr doit être non commercial pour une utilisation gratuite, bien que Picassa permet une utilisation commerciale.


Au fait, je n'ai pas pu laisser un commentaire ci-dessus, car le bouton "Ajouter un commentaire" apparaît sous les liens de droite. Mais merci Andrea et Toby!



2
votes

Pourquoi ne pas utiliser de service comme Amazon S3? Est bon marché, très bon marché (avec le stockage de redondance réduit) et les plugins les plus importants tels que PaperClip le supportent hors de la boîte ...


1 commentaires

Ce que j'allais dire. 508 Mo de stockage travailleraient à environ 1 $ sur S3.