5 votes

Meilleure pratique pour le téléchargement de nombreuses images (2000+) vers un serveur

J'ai une question générale à ce sujet.

Lorsque vous avez une galerie, les gens ont parfois besoin de télécharger des milliers d'images à la fois. Le plus souvent, cela se fait par le biais d'un fichier .zip. Quelle est la meilleure façon de procéder pour télécharger ce genre de choses sur un serveur ? Souvent, les serveurs ont des délais d'attente, etc. qui doivent être pris en compte. Je me demande à quoi je dois faire attention et quelle est la meilleure façon de gérer le téléchargement d'une grande quantité d'images.

Je suppose que vous autorisez un utilisateur à télécharger un fichier zip (en supposant que le délai d'attente ne vous affecte pas), et que ce fichier zip est téléchargé dans un répertoire spécifique, supposons dans ce cas qu'un répertoire est créé pour chaque utilisateur du système. Vous devez ensuite décompresser le répertoire sur le serveur et rechercher dans le dossier de l'utilisateur tous les répertoires contenant des fichiers .jpg, .png ou .gif (etc.), puis les importer dans un tableau. Je suppose qu'ils sont étiquetés par nom de dossier.

Quel genre de problèmes côté serveur pourrais-je rencontrer ?

Je suis conscient qu'il peut y avoir de nombreux problèmes. Même des idées générales seraient les bienvenues pour que je puisse ensuite faire des recherches plus approfondies. Merci.

En outre, je programmerai en Ruby on Rails, mais je pense que cette question s'applique à tous les langages.

2voto

danp Points 4502

Il n'y a aucune raison pour que vous ne puissiez pas gérer ce genre de choses avec une application web. Il existe quelques excellents composants qui pourraient être utiles à cet effet :

  1. Uploadify (basé sur jquery/flash)
  2. plupload (de moxiecode, les gens de tinymce)

La raison pour laquelle ils sont utiles est qu'en premier lieu, ils utilisent un composant flash pour gérer les téléchargements, de sorte que vous pouvez sélectionner des groupes de fichiers à partir de la fenêtre du navigateur de fichiers (en supposant que personne ne va sélectionner individuellement des milliers d'images !), et avec plupload, le glisser-déposer est également pris en charge, ainsi que davantage de plates-formes.

Une fois que l'interface fonctionne, le serveur doit être capable de gérer les téléchargements individuels, en les associant à une sorte de compte d'utilisateur, et à partir de là, tout devrait être assez simple.

En ce qui concerne les problèmes liés au serveur, c'est vraiment une grande question, qui dépend du nombre de personnes qui utiliseront l'application en même temps, de la taille des images, et de tout traitement qui a lieu après. N'oubliez pas que les fichiers sont conservés dans un emplacement temporaire pendant que le script les traite, et qu'ils sont soit supprimés à la fin, soit copiés dans un emplacement de stockage final par votre script, de sorte que les surcharges d'espace/mémoire et les délais peuvent être un problème.

Si les images sont de taille massive, par exemple des images brutes ou tif, ce genre de chose pourrait encore fonctionner avec des téléchargements par morceaux, mais la mise en œuvre d'une sorte de téléchargement FTP pourrait être plus facile. C'est une question un peu vague, mais il devrait y avoir beaucoup de choses ici pour vous aider à avancer ;)

1voto

Ryan Fernandes Points 3938

Pour ces nombreuses images, il doit s'agir d'une application sérieuse ce qui vous donne la liberté de suggérer un logiciel fonctionnant sur le client (quelque chose comme yahoo mail/picassa) qui se chargera de "gérer" (interruptions de réseau/prise en charge de la reprise, etc.) le téléchargement des images.

Du côté du serveur, vous pouvez les traiter un par un (en supposant que votre client les envoie de cette manière), ce qui simplifie les choses.

1voto

Jeter un coup d'œil sur http://gallery.menalto.com
ils ont une douzaine de méthodes pour télécharger des images dans des galeries. Vous pouvez choisir celles qui vous conviennent.

1voto

Cameron Teasdale Points 153

Il faut soit une application client, soit un code Ajax qui envoie les images une par une, évitant ainsi les dépassements de délai. Sinon, si cela n'est pas accessible au public. Le FTP fonctionne toujours...

1voto

lnwdr Points 5557

Je suggérerais une application client (peut-être écrite en AIR ou Titanium) ou d'expliquer à vos utilisateurs ce qu'est le FTP.

deviantArt.com, par exemple, propose le FTP comme méthode de téléchargement pour les abonnés payants et cela fonctionne très bien.

Flickr dispose de sa propre application pour cela. Le "Flickr Uploadr".

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X