2011-07-27 5 views
1

Bonne journée à tous.Télécharger le fichier directement sur un serveur distant

J'ai le scénario suivant:

1 serveur avec un site qui a des formes qui afficheront des données. Une partie de ces données doit aller à une base de données, et il peut également y avoir des fichiers qui doivent être téléchargés.

Problème est que le serveur commence 2 à court d'espace donc il a été alloué 1 serveur de plus qui ont pour fonction principale de stocker les fichiers téléchargés. Je peux accéder au second serveur en utilisant ssh/ftp/n'importe quoi.

La restriction est que je ne peux pas définir l'action des formulaires pour publier 2 le deuxième serveur.

Donc ce que je demande est si je peux télécharger les fichiers 2 le deuxième serveur sans les enregistrer sur le premier et les copier après cela (à cause du manque d'espace). Quelque chose comme la configuration du chemin de téléchargement comme "ftp: // secondServerIp/whatever, credentials".

Répondre

1

Si vous pouvez monter un partage NFS entre vos deux serveurs, vous pouvez avoir un dossier du second serveur qui apparaît comme un dossier local sur le premier.

Ensuite, vous devez seulement configurer ce dossier distant comme destination pour vos téléchargements.

+0

Cela ressemble à une idée ... mais j'espérais résoudre 2 ceci avec des méthodes "normales". +1 de toute façon. – zozo

+0

Eh bien, il me semble être une méthode "normale" ^^ * (j'ai ceci sur plusieurs serveurs, avec de très grosses applications) * –

+0

Impossible de discuter avec ça :). Mais pour mon employé n'aura pas l'air si normal ... J'ai travaillé ici pendant un moment et tout ce qui implique de configurer quelque chose est "pas normal". – zozo

1

Les téléchargements de fichiers de méthode POST seront stockés dans le répertoire temporaire par défaut du serveur, à moins qu'un autre emplacement n'ait été donné avec le upload_tmp_dir directive in php.ini. Cela peut probablement être un lien de fichier NFS ou si vous êtes uniquement lié à l'espace disque, vous pouvez le pointer vers un RAM drive, afin que les fichiers soient stockés dans la mémoire. Vous devez ensuite le copier sur le serveur distant et supprimer le fichier du lecteur RAM. Que ce soit pratique dépend de la charge que vous attendez. Une autre option consisterait à ajouter un proxy inverse sur la machine principale (par exemple nginx), puis de transférer de manière transparente les téléchargements d'images à traiter par le serveur de stockage et tout le reste par le serveur régulier.

Ou vous ajoutez une règle mod_rewrite à votre Apache qui redirige les téléchargements de formulaire.

Questions connexes