8796 sujets

Développement web côté serveur, CMS

Bonjour,

Je cherche depuis de nombreux jours une solution à ma problématique.
Je vais vous expliquer, c'est simple.

En fait, j'ai créé une petite plateforme d'hébergement de fichiers. Au niveau de l'envoi, mon script gère automatiquement la répartition sur un serveur de stockage. Là tout va bien, il envoie ce dernier par FTP et fournis un lien.

Ce lien (du type /up-XX.XX) est en fait de l'URL Rewriting vers le script de téléchargement. Ce script effectue quelques requêtes de statistiques et de protection et renvoie vers l'emplacement actuel du fichier (car le fichier peut-être amené à bouger d'emplacement physique)(par exemple s1.xxx.xxx/up-xx.xx).

Le soucis est que j'ai aucun moyen d'empêcher l'accès direct au lien réel (s1 par exemple).
Pensez vous qu'il est possible de faire passer le fichier directement par le premier script alors qu'il est stocké ailleurs ? PHP Peut-il faire la liaison de l'autre serveur directement ou dois-je d'abord rapatrier mon fichier sur serveur web ?

En espérant que vous m'aillez compris et que vous puissiez m'aider ! Merci d'avance Smiley smile !
Hello !

Si j'ai bien compris, tu veux utiliser ton script PHP (pointé via l'URL Rewriting) pour faire transiter le contenu du fichier à downloader, qui lui se trouve sur un serveur de stockage, accessible en FTP.

Si c'est bien ça, tu peux passer par la librairie CURL pour ouvrir un flux (via FTP par exemple) vers ton fichier, puis le lire et renvoyer son contenu vers ton client ...
MAD's a écrit :
Hello !

Si j'ai bien compris, tu veux utiliser ton script PHP (pointé via l'URL Rewriting) pour faire transiter le contenu du fichier à downloader, qui lui se trouve sur un serveur de stockage, accessible en FTP.

Si c'est bien ça, tu peux passer par la librairie CURL pour ouvrir un flux (via FTP par exemple) vers ton fichier, puis le lire et renvoyer son contenu vers ton client ...


C'est ce que je pensais au début.
Mais je me posais la question sur les performances ... Le temps de se connecter en FTP, etc ...
Il va falloir que je fasse des tests plus poussés.

Ce que je pensais faire au départ, c'était que ce script télécharge (là on est bon donc) le fichier depuis le serveur FTP, et le stocke en local pour le distribuer plus rapidement les prochains coups.

De toute manière, ça reviens à faire une sorte de proxy.
Je vais m'atteler à la tâche, faire des tests. Si quelqu'un a une autre suggestion à me faire, n'hésitez pas Smiley smile !

Merci.

EDIT : Bon je viens d'écrire un premier jet du système.
Tout fonctionne, je récupère le fichier depuis le serveur FTP, ensuite je le fais passer par le fichier aucun soucis.
Mais le problème (oui en fait il y en a un ...) c'est qu'il me propose de télécharger le fichier et il ne le lit pas dans le navigateur du coup. Une question de header j'imagine, mais je ne connais pas celui qui coince dans ce cas là ... Une idée ? Merci Smiley smile !

EDIT 2 : Hum c'est bon en fait, j'ai récupéré les header de l'ancien système, et j'ai adapté au nouveau, du coup il l'affiche correctement. C'est parti pour une longue série de tests !
Modifié par iMeee (13 Mar 2011 - 10:23)