plan de lancer un site de bandes dessinées qui sert des bandes dessinées (images). J'ai peu d'expérience dans le service/la mise en cache d'images.Question sur le service d'images sur App Engine (2 alternatives)
donc ce sont mes 2 méthodes J'envisage:
1. Utilisation LinkProperty
class Comic(db.Model)
image_link = db.LinkProperty()
timestamp = db.DateTimeProperty(auto_now=True)
Avantages: Les images sont get-ed de l'espace disque lui-même (et l'espace disque est pas cher je le prends?) Je peux facilement mettre en place app.yaml avec une date d'expiration pour mettre en cache le contenu dans le navigateur de l'utilisateur je peux mettre en place memcache pour récupérer les entités plus rapidement (pour le trafic élevé)
2. Utilisation de BlobProperty
J'ai utilisé ce tutoriel, cela a fonctionné plutôt bien. Question subsidiaire: Puis-je dire que l'utilisation de BlobProperty "protège" mes images de la liaison externe? Cela signifie que les gens ne peuvent pas juste un lien directement aux bandes dessinées
J'ai quelques soucis pour la méthode 2.
- Je ne peux évidemment memcache ces entités pour une lecture plus rapide.
Mais:
Est-ce memcaching images une bonne chose? Mes images sont grandes (100-200kb par image). Je pense que memcache ne permet que jusqu'à 4 Go de données en cache? Ou est-ce 1 Mo par entité memcached, avec des entités illimitées ...
Que faire si le memcache d'appengine échoue? -> Solution: Je devrais retourner au datastore.
- Comment puis-je mettre en cache ces images dans le navigateur de l'utilisateur? Si je faisais la méthode non. 1, je pourrais simplement ajouter à mon app.yaml la date d'expiration pour le contenu, et les images sont mises en cache côté utilisateur.
aimerait entendre vos pensées. Devrais-je utiliser la méthode 1 ou 2? La méthode 1 semble simple et directe, devrais-je m'en méfier?
[EDITED] Comment résoudre ce dilemme? Dilemme: La dernière chose que je veux faire est d'empêcher les gens d'obtenir le lien direct vers l'image et de le mettre en place.parce que l'utilisateur sera automatiquement dirigé uniquement vers l'image sur mon serveur (et non la publicité/le contenu qui l'entoure si l'utilisateur y avait accédé depuis la page principale elle-même)
La bande passante Internet n'est pas le problème. Vous serez à court de quota de transfert de données de banque de données avant que votre bande passante Internet coûte beaucoup. – JasonSmith
Les CDN ne rendent pas les choses moins chères, elles le rendent plus rapide mais plus cher. @jhs: Vous ne manquerez pas de quota de transfert de banque de données - nous l'augmenterons si nécessaire. –
Nick, ça dépend de la situation. AppEngine est autour de 0,12 $/Go mais j'ai trouvé que vous pouvez négocier moins que cela avec certains fournisseurs. De plus, pourquoi utiliser DataStore et le quota associé pour stocker des blobs d'images statiques lorsque vous pouvez le mettre sur un cdn et ne pas utiliser l'espace DataStore et le quota d'API. Cela s'est avéré beaucoup moins coûteux pour moi en termes d'argent, de temps de développement et de latence de la page. – dar