Hallo Community,
mein Name ist Markus ich wohne in Graz und studiere dort Informatik im 5. Semester.
Zur Zeit verpasse ich unserer Vereins-Website ein neues Interface und einige neue Funktionen & Services.
Das Ding soll sich vom klassischen CMS in Richtung 'Rich Internet Application' entwickeln, wozu auch einige GB online Speicherplatz für jeden Benutzer integriert werden sollen.
Hardware-mäßig steht ein Managed-Hosting-Pro-Paket von domainfactory zur Verfügung, also keine Möglichkeit eines Root-Zugriffes, allerdings unbegrenzt FTP Accounts.
Mein Vorhaben ist nun, einen Cloud-Service anzubieten um die Dateien des Benutzers nicht nur online sondern auch offline verfügbar zu machen.
Allerdings habe ich nicht für jeden Benutzer ein eigenes Benutzerverzeichnis, sondern alle Cloud-Daten liegen in einem Verzeichnis und werden virtuell über die Datenbank strukturiert, vor allem weil ich dadurch flexibler bin, wenn z.B. ein Ordner einem anderen Benutzer freigegeben wird, was aber auch bedeutet, dass ich diese virtuelle Dateistruktur irgendwie am Benutzer-Rechner abbilden muss.
Im ersten Schritt würde ich gerne eine Cocoa-App (OS X) anbieten, die das Benutzer-Verzeichnis überwacht und die Daten synchronisiert.
Das Synchronisieren stellt an diesem Punkt noch kein Problem da, weil ich mich hier an verschiedenen fertigen Lösungen (rsync) orientieren kann, jedoch habe ich keinen Plan, wie ich die Dateiübertragung an sich am besten löse.
Folgende Ansätze:
1.) WebDav
Hier orientiere ich mich stark an 'ownCloud', welches 'sabreDAV' (https://code.google.com/p/sabredav/) für den Dateitransfer verwendet, jedoch habe ich hier Angst, dass mir die Server-Limits (max_execution_time, max_post_size etc) einen gewaltigen Strich durch die Rechnung machen, sobald die Dateien etwas größer als ein paar MB sind.
2.) FTP
Anstatt den Dateitransfer über WebDav laufen zu lassen habe ich auch die Möglichkeit die Dateien via FTP zu übertragen. Die Cocoa-App kann über HTTP-Requests mit der Website kommunizieren um z.b. neue Dateien in der Datenbank zu registrieren.
Für jeden Benutzer einen FTP-Account zu führen wäre technisch möglich, lässt sich aber mit dem virtuellen Dateisystem der Website nicht vereinbaren.
Somit greift die Sync-App mit einem FTP-Account auf alle Daten zu, und lädt eben nur die Daten, die der Benutzer sehen darf, was glaub ich nicht die sicherste Lösung ist.
Wie lange dauert es, bis die FTP-Zugangsdaten aus der App ausgelesen sind. (Wireshark?)
3.) Chrome (Packaged App)
Soweit ich das verstanden habe, kann ich mit den packaged Apps von Chrome auch auf das Client-Dateisystem zugreifen und Up- & Downloads über JavaScript erledigen. (Eventuell auch chuncked-uploads wegen Limits) Weiters funktionieren Chrome-Apps auf allen Systemen, wo Chrome installiert werden kann.
Mich würde nun interessieren, ob es eine Möglichkeit gibt, mein Anliegen umzusetzen, und wenn ja, welche der 3 Ansätze am ehesten brauchbar wäre.
Ich denke, das ganze wäre mit einem v-server wesentlich einfacher zu lösen, jedoch ist mir ein managed-server zu teuer und was man so liest, wird einem eher davon abgeraten einen billigen 'unmanaged' vserver zu betreiben, wenn man nicht ein absoluter Freak mit mehreren Jahren Erfahrung in der Serververwaltung ist.
Ich bedanke mich schonmal im Vorhinein für eure Unterstützung,
LG aus Graz,
Markus
mein Name ist Markus ich wohne in Graz und studiere dort Informatik im 5. Semester.
Zur Zeit verpasse ich unserer Vereins-Website ein neues Interface und einige neue Funktionen & Services.
Das Ding soll sich vom klassischen CMS in Richtung 'Rich Internet Application' entwickeln, wozu auch einige GB online Speicherplatz für jeden Benutzer integriert werden sollen.
Hardware-mäßig steht ein Managed-Hosting-Pro-Paket von domainfactory zur Verfügung, also keine Möglichkeit eines Root-Zugriffes, allerdings unbegrenzt FTP Accounts.
Mein Vorhaben ist nun, einen Cloud-Service anzubieten um die Dateien des Benutzers nicht nur online sondern auch offline verfügbar zu machen.
Allerdings habe ich nicht für jeden Benutzer ein eigenes Benutzerverzeichnis, sondern alle Cloud-Daten liegen in einem Verzeichnis und werden virtuell über die Datenbank strukturiert, vor allem weil ich dadurch flexibler bin, wenn z.B. ein Ordner einem anderen Benutzer freigegeben wird, was aber auch bedeutet, dass ich diese virtuelle Dateistruktur irgendwie am Benutzer-Rechner abbilden muss.
Im ersten Schritt würde ich gerne eine Cocoa-App (OS X) anbieten, die das Benutzer-Verzeichnis überwacht und die Daten synchronisiert.
Das Synchronisieren stellt an diesem Punkt noch kein Problem da, weil ich mich hier an verschiedenen fertigen Lösungen (rsync) orientieren kann, jedoch habe ich keinen Plan, wie ich die Dateiübertragung an sich am besten löse.
Folgende Ansätze:
1.) WebDav
Hier orientiere ich mich stark an 'ownCloud', welches 'sabreDAV' (https://code.google.com/p/sabredav/) für den Dateitransfer verwendet, jedoch habe ich hier Angst, dass mir die Server-Limits (max_execution_time, max_post_size etc) einen gewaltigen Strich durch die Rechnung machen, sobald die Dateien etwas größer als ein paar MB sind.
2.) FTP
Anstatt den Dateitransfer über WebDav laufen zu lassen habe ich auch die Möglichkeit die Dateien via FTP zu übertragen. Die Cocoa-App kann über HTTP-Requests mit der Website kommunizieren um z.b. neue Dateien in der Datenbank zu registrieren.
Für jeden Benutzer einen FTP-Account zu führen wäre technisch möglich, lässt sich aber mit dem virtuellen Dateisystem der Website nicht vereinbaren.
Somit greift die Sync-App mit einem FTP-Account auf alle Daten zu, und lädt eben nur die Daten, die der Benutzer sehen darf, was glaub ich nicht die sicherste Lösung ist.
Wie lange dauert es, bis die FTP-Zugangsdaten aus der App ausgelesen sind. (Wireshark?)
3.) Chrome (Packaged App)
Soweit ich das verstanden habe, kann ich mit den packaged Apps von Chrome auch auf das Client-Dateisystem zugreifen und Up- & Downloads über JavaScript erledigen. (Eventuell auch chuncked-uploads wegen Limits) Weiters funktionieren Chrome-Apps auf allen Systemen, wo Chrome installiert werden kann.
Mich würde nun interessieren, ob es eine Möglichkeit gibt, mein Anliegen umzusetzen, und wenn ja, welche der 3 Ansätze am ehesten brauchbar wäre.
Ich denke, das ganze wäre mit einem v-server wesentlich einfacher zu lösen, jedoch ist mir ein managed-server zu teuer und was man so liest, wird einem eher davon abgeraten einen billigen 'unmanaged' vserver zu betreiben, wenn man nicht ein absoluter Freak mit mehreren Jahren Erfahrung in der Serververwaltung ist.
Ich bedanke mich schonmal im Vorhinein für eure Unterstützung,
LG aus Graz,
Markus
Kommentar