2010-10-13 2 views
0

J'ai une application rails qui fait le processus suivant (au linéaire moment):Je veux optimiser le téléchargement d'un fichier sur le serveur - quelle est la meilleure façon de le faire?

(1) L'utilisateur télécharge un fichier via HTTP et une forme de téléchargement standard sur une page HTML standard (2) Le fichier est téléchargé à un serveur Apache (même serveur que celui qui héberge l'application) (3) Le serveur télécharge le fichier vers le service de stockage distant (appelez ce stockage 1) (4) Lorsque (3) est terminé, l'utilisateur est automatiquement pris en charge une autre page

Bien que le fichier est téléchargé, l'utilisateur voit un barre de progression, etc.

maintenant question : - (1) -> (4) prend beaucoup de temps pour les fichiers volumineux (car les processus (2) et (3) prennent du temps) et le navigateur attend une réponse du serveur avant de passer à (4) (c.-à-d. une réponse du serveur indiquant que l'achèvement de (3) est terminé).

Y a-t-il un moyen d'accélérer (1) -> (4). Cela ne me dérange pas si le fichier se charge dans le stockage 1 et sur le serveur en arrière-plan alors que l'utilisateur est autorisé à parcourir une autre page sur le site. Maintenant, la pensée supplémentaire est - le serveur vers lequel le fichier est téléchargé (appelons le serveur 1) peut être différent du serveur d'hébergement (serveur 2) si nécessaire.

Toutes les idées ont été appréciées.

+0

Le fichier doit être transféré dans le service de stockage le plus rapidement possible, c'est-à-dire. un téléchargement par lots en cours d'exécution toutes les 30 minutes ne fonctionnera pas. Max. – user475163

Répondre

1

Dès que le fichier est téléchargé sur le serveur, déplacez-le. Laissez le serveur lui-même gérer le déplacement du fichier vers "stockage 1" en utilisant quelque chose comme Job retardé puis informez l'utilisateur (en utilisant un système tel que l'email) que le fichier est maintenant disponible pour être téléchargé.

+0

Vous devrez peut-être prendre en compte les échecs aux étapes 3-4. Du pov de l'utilisateur, ça marche toujours? Si ce n'est pas le cas, devons-nous en informer l'utilisateur? – seand

Questions connexes