/ / Django: Envoi de fichiers sur s3 à l'aide de boto - django, traitement d'images, amazon-s3, boto

Django: envoi de fichiers sur s3 à l'aide de boto - django, traitement d'images, amazon-s3, boto

J'essaie de upload images (taille moyenne 12 Mo) sur mon serveur (django avec PIL) puis je les traite pour réduire les images et créer des vignettes.

Au cours de ce processus, je "n'enregistre pas les images sur le disque local du serveur, mais" In Memory file et le traiter. Je suis en train de télécharger des images sur s3, en utilisant boto et j’ai une image originale, une image à l’échelle et la vignette qui doit être téléchargée une par une (ces trois sont toujours présentes dans ma mémoire).

Ce processus prend beaucoup de temps et parfois le serveur que j'utilise (Digital Ocean 512 Mo de RAM) génère une erreur de mémoire insuffisante.

Puis-je savoir s'il existe un meilleur moyen de télécharger des images?

Toute aide est très appréciée. Merci d'avance.

Réponses:

1 pour la réponse № 1

Je n'ai pas beaucoup travaillé avec django & boto mais vous pouvez essayer quelques suggestions

  • Mettez à niveau votre serveur. si vous allez traiter autant de gros fichiers, le traitement d'image nécessite beaucoup de mémoire.
  • Vous pouvez essayer d’implémenter des files d’attente (c’est-à-dire chaque fois que vous obtiendrez un téléchargement). la demande et le fichier sont plus volumineux, puis il est mis en file d'attente et traité après l'actuel processus est terminé). Vous pouvez utiliser céleri pour ce travail.
  • Si vous n’avez pas besoin de fichiers aussi volumineux, vous pouvez réduire le taille du côté client en premier, puis passe-le au serveur.