programmation d'un stockage partagé pour groupe de travail

programmation d'un stockage partagé pour groupe de travail - PHP - Programmation

Marsh Posté le 12-06-2011 à 22:20:32    

suite a mes premiers posts sur le topic de debian ou je me suis fait sauvagement jeté dehors :o :lol:  :whistle:  
je cree ce topic pour mon projet :  
 
cree sur serveur dedié une interface web permettant a plusieurs users d'acceder a a des fichiers , d'en uploader eux meme et ca avec 2 contraintes qui sont pour moi tres importantes :  
 
A que jamais l'emplacement REEL du fichier d'origine ne soit connu ou visible du user  
B que le telechargement se fasse par navigateur web et que le lien donnée soit "jetable" : un seul DL avant que le lien devienne invalide  
 
 
 
le point de la situation du projet :  
 
matos : 2 serveurs dedié construit sur 2 cartes meres intel D945GSEJT ( ATOM avec 1go de ram au cul  CF topic
 
le serveur A  heberge la BDD et le stockage des fichiers  
le serveur B gere les serveurs PHP et apaches  
les deux sont en reseau giga local  
 
j'ai deja tout ca sous la main, me reste a tout monter pour les tests ( je fera ca quand j'aurai lq chose a tester en fait :lol: :o )  
 
SOFT ( le gros morceau du projet :o )  
site devellopé en PHP/ SQL et installé sur une base linux debian  
 
mes idees  
 
une BDD asses basique avec une table pour les users type  cle/login/password/groupe
 
groupe pouvant etre  
0 = all  
1 = privé
2 = admin
3 = groupe 1 famille  
4 = groupe 2 amis
5 = goupe 3 collegues
6 = groupe 4 what else :o  
7 ect ect selon les besoins futurs etc  
 
et une autre pour les fichiers  
clé/nom/taille/emplacement/groupe/proprio/N°log/password    ( les champs N°log/pass on verra plus tard :jap: )  
 
la page d'acceuil est bourrin a souhait :
un index.html vide qui demande login/pass couplé a  
postindex.php qui check les infos et fait la redirection  : soit retour a l'index soit acces a la page "logged"
 
logged.php qui regarde qui est la personne et construit une page avec un tableau des fichiers autorisé : groupe 0 + groupe 1 where proprio = user  + groupe du user  )  
 a chaque ligne y a un bouton pour DL le fichier qui renvoie sur  un postlogged.php chargé de cree l'alias temporaire puis lancer le DL  
 
 
dans un coin un lien un formulaire d'upload
upload.php    
j'espere reussir a ce que mon code renseigne tout seul  
proprio/taille/emplacement et qu'il y ai plus qu'a choisir le groupe d'acces voulu pour le fichier ( au choix 0/1/groupe du user)  
 
en second temps une fois ca mis en place et fonctionnel je pense ajouter une page pour pouvoir telecharger un fichier sans etre un user enregistré en donnant directement le N°de fichier + son password  
 
cette fonction me permettrai de faire diffuser des fichiers facilement sans avoir a cree what milles users  
 
 
pour le moment je pense que le nombre de users sera asses restreint pour que je ne fasse pas de page dedié a la creation de user .. je ferai ca la main dans la BDD, on verra plus tard si ca marche bien pour corriger ca :jap:  
 
pour mon problème de non acces au FTP master contenant tout les fichiets "en vrac" j'ai pensé a une methode certe bourrin mais qui a l'avantage d'etre simple :o  
fabriquer un dossier temporaire de session et y faire une copie du fichier , le lien HTML donné sera donc fabriqué au coup par coup et pointera sur un dossier jetable qui finira a la poubelle sitot fini son usage  
 
 
voila l'etat du merdier , desolé pour le pavé et les idees dans tous les sens,  
je suis ouvert a toute remarque ou idees qui m'aideront  
 
d'avance merci a tous  :hello:  
 


---------------
I sit, in my desolate room, no lights, no music, Just anger, I've killed everyone, I'm away forever, but I'm feeling better,How do I feel,What do I say,Fuck you, it all goes away,
Reply

Marsh Posté le 12-06-2011 à 22:20:32   

Reply

Marsh Posté le 13-06-2011 à 22:24:57    

J'ai 2 questions pour toi (la 2e étant la plus importante) :  
- pourquoi vouloir utiliser absolument 2 serveurs dédiés ? 1 front-end et un avec les datas ?
- comment comptes-tu faire accéder le serveur web aux fichiers à uploader ?

Reply

Marsh Posté le 13-06-2011 à 22:32:40    

deux serveurs ben ... parce que j'ai deux mobal prevu pour ca :lol:  
 
 
je suis du genre parano c'est tout  
si y a deux serveurs, meme en cas de faille dans front end l'autre serveur reste safe,  a moi de voir la faille asses vite avant que mes donnes filent dans la nature  
idealement je vais meme tenter de faire tourner le front end sans DD propre en le faisant netbooter depuis l'autre, mais j'ai des doutes :sweat:  
 
pour acceder au fichier a UP c'est le front end qui fera ca via un formulaire d'upload, la dessus je vais pas REinventer la roue, y a wattmilles sites qui proposent des section de code deja pretes pour faire ca et qui marchent tres bien  
j'aurai 'juste" a me fader la copie du fichier depuis le dossier incoming du front end vers le serveur arriere , mais un deplacement de fichier en PHP y a pas de qui en enculer un kolala :jap:    


---------------
I sit, in my desolate room, no lights, no music, Just anger, I've killed everyone, I'm away forever, but I'm feeling better,How do I feel,What do I say,Fuck you, it all goes away,
Reply

Marsh Posté le 14-06-2011 à 00:19:16    

arkrom a écrit :

j'aurai 'juste" a me fader la copie du fichier depuis le dossier incoming du front end vers le serveur arriere

C'est bien là ma question, comment tu comptes faire ça ? En ftp ? avec un partage nfs ? autre ? ...  
Parce que selon la solution choisie, tu vas pas vraiment coder tout ton truc de la même façon ;)  

Reply

Marsh Posté le 14-06-2011 à 10:17:51    

je pensais partir sur un serveur arriere en FTP  via VSFTPD  
 
serveur FTP qui n'aura que 2 clients possibles : moi via la connexion admin du serveur et le serveur front end


---------------
I sit, in my desolate room, no lights, no music, Just anger, I've killed everyone, I'm away forever, but I'm feeling better,How do I feel,What do I say,Fuck you, it all goes away,
Reply

Marsh Posté le 14-06-2011 à 11:10:38    

pour avoir fait à peu près le meme genre de truc :

 
Citation :

A que jamais l'emplacement REEL du fichier d'origine ne soit connu ou visible du user  

 

tu stockes tout dans un répertoire qui s'appelle 'fichiers' et qui contient un .htaccess avec un deny from all.

 
Citation :

B que le telechargement se fasse par navigateur web et que le lien donnée soit "jetable" : un seul DL avant que le lien devienne invalide  

 

tu geres avec ta base de données pour l'unicité des telechargements.

 

par exemple une fois que le fichier a été uploadé, tu as crée un enregistrement avec id_fichier(unique) et nom_fichier.

 

pour le télécharger :

 

dans une page tu fais un lien comme ça pour le user :

 

<a link href="./dlfichier.php?id_fichier=1234">

 

et dans dlfichier.php : (j'ecris pas tout le code)

Code :
  1. if isset $id_fichier {
  2. ta requete : select nom_fichier where id_fichier=$id_fichier
  3. header('Content-type: application/pdf');
  4. header('Content-Disposition: attachment; filename="'.$nom_fichier.'"');
  5. readfile($path_to_nom_fichier);
  6. ta requete qui supprime l'enregistrement id_fichier;
  7. }
  



Message édité par rengzehn le 14-06-2011 à 11:11:53
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed