Benutzer-Werkzeuge

Webseiten-Werkzeuge


fastdownload

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu dieser Vergleichsansicht

fastdownload [2009/04/23 16:03]
DeaD_EyE
fastdownload [2012/04/02 21:09] (aktuell)
DeaD_EyE [Scripts für die Kompression] -type f
Zeile 13: Zeile 13:
 ==== Kostenlose Angebote ==== ==== Kostenlose Angebote ====
 Es gibt hin und wieder Communitys, welche den Fastdownload anbieten oder einen Service dazu anbieten. Es gibt hin und wieder Communitys, welche den Fastdownload anbieten oder einen Service dazu anbieten.
-  * [[http://fastdl.tk]] - Hosting von Maps+  * <del>[[http://fastdl.tk]], [[http://fastdl.eu]] - Hosting von Maps</del>
   * [[http://protect.brainless.us]] - sv_downloadurl vor Missbrauch schützen   * [[http://protect.brainless.us]] - sv_downloadurl vor Missbrauch schützen
 +  * [[http://www.ukgame.com/redirect/]] - kostenloser Fastdownload-Dienst
  
 ===== Erläuterung ===== ===== Erläuterung =====
Zeile 20: Zeile 21:
 ==== Beispiel ==== ==== Beispiel ====
 In diesen fiktiven Beispiel haben wir einen "Counter-Strike Source"-Server mit der Map gg_aim_shotty laufen.\\ \\  In diesen fiktiven Beispiel haben wir einen "Counter-Strike Source"-Server mit der Map gg_aim_shotty laufen.\\ \\ 
-**Hier eine tabellarische Übersicht**+**Tabellarische Übersicht**
 ^Beschreibung  ^Pfad/URL  ^ ^Beschreibung  ^Pfad/URL  ^
 |  **Gameserver**  || |  **Gameserver**  ||
Zeile 35: Zeile 36:
 Die [[:cvar|Konsolen-Variable]] sv_downloadurl wurde dementsprechend auf http://sourceserver.info/xyz/abc gesetzt. Die Map befindet sich wie alle [[:maps]] im Verzeichnis ''maps''. Verbindet sich ein Spieler mit dem Server, der diese [[:maps|Map]] noch nicht hat, leitet der Server den Download automatisch auf http://sourceserver.info/xyz/abc/maps/gg_aim_shotty.bsp.bz2 um. Befindet sich die komprimierte Version nicht auf dem Webserver, wird danach die nicht komprimierte Datei angefordert.\\  Die [[:cvar|Konsolen-Variable]] sv_downloadurl wurde dementsprechend auf http://sourceserver.info/xyz/abc gesetzt. Die Map befindet sich wie alle [[:maps]] im Verzeichnis ''maps''. Verbindet sich ein Spieler mit dem Server, der diese [[:maps|Map]] noch nicht hat, leitet der Server den Download automatisch auf http://sourceserver.info/xyz/abc/maps/gg_aim_shotty.bsp.bz2 um. Befindet sich die komprimierte Version nicht auf dem Webserver, wird danach die nicht komprimierte Datei angefordert.\\ 
  
-**Tabellarische Übersicht:**+**Tabellarische Übersicht**
 ^Beschreibung  ^Pfad/URL  ^ ^Beschreibung  ^Pfad/URL  ^
 |sv_downloadurl  |<nowiki>"http://sourceserver.info/xyz/abc"</nowiki>  | |sv_downloadurl  |<nowiki>"http://sourceserver.info/xyz/abc"</nowiki>  |
 |relativer Pfad der ersten angeforderten Datei (komprimierte Version)  |maps/gg_aim_shotty.bsp.bz2  | |relativer Pfad der ersten angeforderten Datei (komprimierte Version)  |maps/gg_aim_shotty.bsp.bz2  |
 |relativer Pfad der zweiten angeforderten Datei, wenn der Download der komprimierten Datei erfolglos war (nicht komprimierte Version)  |maps/gg_aim_shotty.bsp  | |relativer Pfad der zweiten angeforderten Datei, wenn der Download der komprimierten Datei erfolglos war (nicht komprimierte Version)  |maps/gg_aim_shotty.bsp  |
-|Die vom Gameserver automatisch generierte URL zur benötigten Datei (komprimierte Version)  |''http://sourceserver.info/xyz/abc/maps/gg_aim_shotty.bsp.bz2''  | +|Die vom Gameserver automatisch generierte URL zur benötigten Datei (komprimierte Version)  |<nowiki>http://sourceserver.info/xyz/abc/maps/gg_aim_shotty.bsp.bz2</nowiki>  | 
-|Die vom Gameserver automatisch generierte URL zur benötigten Datei, wenn der Download der komprimierten Datei erfolglos war (komprimierte Version)  |''http://sourceserver.info/xyz/abc/maps/gg_aim_shotty.bsp''  |+|Die vom Gameserver automatisch generierte URL zur benötigten Datei, wenn der Download der komprimierten Datei erfolglos war  |<nowiki>http://sourceserver.info/xyz/abc/maps/gg_aim_shotty.bsp</nowiki>  |
  
 Befindet sich weder die komprimierte noch die unkomprimierte Datei auf dem Webspace, kann der Client die Datei nicht herunterladen. Die Datei wird auch nicht vom Gameserver heruntergeladen. Befindet sich weder die komprimierte noch die unkomprimierte Datei auf dem Webspace, kann der Client die Datei nicht herunterladen. Die Datei wird auch nicht vom Gameserver heruntergeladen.
Zeile 53: Zeile 54:
 Die [[:cvar|Konsolen-Variable]] ''sv_downloadurl'' muss nur auf das Stammverzeichnis zeigen, nicht aber auf jedes beinhaltendes Verzeichns. Folgendes wäre nach unserem fiktiven Beispiel falsch: Die [[:cvar|Konsolen-Variable]] ''sv_downloadurl'' muss nur auf das Stammverzeichnis zeigen, nicht aber auf jedes beinhaltendes Verzeichns. Folgendes wäre nach unserem fiktiven Beispiel falsch:
 ^sv_downloadurl  ^Bemerkung  ^ ^sv_downloadurl  ^Bemerkung  ^
-|&quot;http://sourceserver.info/xyz/abc/cstrike&quot;  |cstrike am Ende muss weg  | +|&lt;nowiki>;http://sourceserver.info/xyz/abc/cstrike&lt;/nowiki>;  |cstrike am Ende muss weg  | 
-|&quot;http://sourceserver.info/xyz/abc/cstrike/maps&quot;  |cstrike/maps  wäre komplett falsch  | +|&lt;nowiki>;http://sourceserver.info/xyz/abc/cstrike/maps&lt;/nowiki>;  |cstrike/maps  wäre komplett falsch  | 
-|&quot;http://sourceserver.info/xyz/ABC&quot;  |Falsches Verzeichnis, die Groß- ud Kleinschreibung muss auf Linux-Servern beachtet werden.  | +|&lt;nowiki>;http://sourceserver.info/xyz/ABC&lt;/nowiki>;  |Falsches Verzeichnis, die Groß- ud Kleinschreibung muss auf Linux-Servern beachtet werden.  |
-==== Schreibweise ==== +
-Da der größte Teil der Webserver in Deutschland auf einem Linux-Server laufen, wird hier zwischen Groß- und Kleinschreibung unterschieden. **Es ist darauf zu achten, dass die Schreibweise korrekt ist**. Windows unterscheidet Pfade nicht mit Groß- und Kleinschreibung. Das ist der häufigste Fehler, der gemacht wird.\\ +
  
 +==== Verzeichnis- und Dateirechte ====
 +Ein Großteil der Webserver in Deutschland laufen auf einem Apache2 unter Linux. Bei unixoiden Systemen unterscheidet sich die Zugriffsrechte mit denen unter Windows.\\ 
 +Es ist wichtig, dass der Eigentümer den Dateien genügend Zugriffsrechte zuweist, damit der Webserver, welcher fast immer mit unter einem anderen Benutzer läuft, auf die Verzeichnisse und Dateien zugreifen kann.\\ 
  
 +=== Erklärung ===
 +Quelle: [[wpde>Unix-Dateirechte]]\\ 
 +Es gibt insgesamt drei Benutzerklassen:
 +  - Eigentümer (engl. user oder owner, Eigentümer), ein spezielles Benutzerkonto am Computer
 +  - Gruppe (engl. group), eine spezielle Unix-Benutzergruppe
 +  - Sonstige (engl. world), jeder andere, der nicht der Eigentümer oder ein Mitglied der Inhabergruppe ist.
 +Die effektiven Rechte, die ein Benutzer an einer Datei hat, werden in der hier genannten Reihenfolge vergeben. So hat beispielsweise der Besitzer einer Datei all die Rechte, die ihm in dieser Position gegeben sind, ungeachtet der Rechte, die er als Gruppenmitglied hätte.
 +
 +Der Eigentümer hat als einziger die Möglichkeit, die Dateirechte seiner Datei zu ändern oder den Dateiinhaber bzw. die -gruppe zu ändern
 +Diesen drei Benutzerklassen können die Rechte zugewiesen werden.\\ 
 +Grundlegende Rechte:
 +  * **Lesen:** Der Benutzer darf aus der Datei lesen oder, im Falle eines Verzeichnisses, seinen Inhalt auslesen, allerdings keine Dateirechte dieser Dateien erfahren. Dieses Recht wird oft durch den Buchstaben „r“ für englisch read („lesen“) dargestellt und daher auch R-Bit genannt.
 +  * **Schreiben:** Der Benutzer darf in die Datei schreiben bzw. Dateien und Unterverzeichnisse in dem Verzeichnis erstellen, bearbeiten, umbenennen, löschen und deren Dateirechte verändern. Dieses Recht wird oft durch den Buchstaben „w“ für englisch write („schreiben“) dargestellt und daher auch W-Bit genannt.
 +  * **Ausführen:** Der Benutzer darf die Datei als Programm ausführen bzw. in das Verzeichnis wechseln und dort Dateien oder Unterverzeichnise erreichen. Ohne das Lesen-Recht darf der Verzeichnisinhalt jedoch nicht ausgelesen werden. Dieses Recht wird oft durch den Buchstaben „x“ für englisch execute („ausführen“) dargestellt und daher auch X-Bit genannt.\\ 
 +Im Gegensatz zu Access Control Lists werden Rechte nicht vererbt. Neu erstellte Dateien in einem Verzeichnis haben demnach nicht notwendigermaßen die gleichen Rechte wie dieses Verzeichnis.\\ 
 +Bei allen FTP-Clienten kann für diese Zugriffsrechte ein HEX-Wert angegeben werden, welcher sich aus drei Stellen zusammensetzt.
 +Dabei werden die Attribute in der Reihenfolge für Eigentümer, Gruppe und Sonstige gesetzt. Anhand der Addition der einzelnen Attribute wird für die Benutzerklassen festgelegt, welche Zugriffsrechte sie besitzen.\\ 
 +Diese setzen sich folgendermaßen zusammen:
 +| 1 | lesen |
 +| 2 | schreiben |
 +| 4 | ausführen |
 +Durch Addition der einzelnen Rechte, lassen sich beliebige Kombinationen festlegen.
 +=== Praxis ===
 +FTP-Benutzer und Benutzer des Webservers sind immer unterschiedlich. Oft befinden sich diese beiden Benutzer auch nicht in den gleichen Gruppen. Verzeichnissen und Dateien müssen ausreichend Attribute zugewiesen werden, da ansonsten der Zugriff vom Webserver auf die Verzeichnisse bzw. Dateien nicht erlaubt wird.
 +  * FTP-Benutzer und Webserver befinden sich __nicht__ in den gleichen Gruppe. Verzeichnissen müssen in diesem Fall die Attribute 755((Eigentümer: lesen, schreiben, ausführen\\ Gruppe: lesen und ausführen\\ Sonstige: lesen und ausführen)) zugewiesen werden. Dateien müssen die Attribute 644((Eigentümer: lesen und schreiben \\ Gruppe: lesen\\ Sonstige: lesen)) zugewiesen werden.
 +  * FTP-Benutzer und Webserver befinden sich in den gleichen Gruppe. Verzeichnissen müssen in diesem Fall die Attribute 750((Eigentümer: lesen, schreiben, ausführen\\ Gruppe: lesen und ausführen\\ Sonstige: keine Rechte)) zugewiesen werden. Dateien müssen die Attribute 640((Eigentümer: lesen und schreiben \\ Gruppe: lesen\\ Sonstige: keine Rechte)) zugewiesen werden.
 +Bei diesen beiden Beispielen handelt es sich um die minimalen Rechte, welche vergeben werden müssen. Höhere Rechte beeinträchtigen den Zugriff nicht, sind aber unnötig. Durch ausprobieren der beiden Möglichkeiten kann man testen, ob FTP-Benutzer und Webserver sich in der gleichen Gruppe befinden. Es kann aber auch ggf. beim Hoster einfach nachgefragt werden.
 +
 +==== Schreibweise ====
 +Da der größte Teil der Webserver in Deutschland auf einem Linux-Server laufen, wird hier zwischen Groß- und Kleinschreibung unterschieden. **Es ist darauf zu achten, dass die Schreibweise korrekt ist**. Windows unterscheidet Pfade nicht mit Groß- und Kleinschreibung. Das ist der häufigste Fehler, der gemacht wird.\\ 
  
 ==== Ressourcen-Datei  ==== ==== Ressourcen-Datei  ====
Zeile 70: Zeile 102:
   * [[http://www.brainless.us/downloads.aspx?cid=1|SourceRSC (formerly CSRSC)]] komprimiert die Dateien und lädt sie auf dem Webserver per FTP-Zugriff hoch.   * [[http://www.brainless.us/downloads.aspx?cid=1|SourceRSC (formerly CSRSC)]] komprimiert die Dateien und lädt sie auf dem Webserver per FTP-Zugriff hoch.
   * [[http://gnuwin32.sourceforge.net/packages/bzip2.htm|Bzip for Windows]] Kompresison Batch.   * [[http://gnuwin32.sourceforge.net/packages/bzip2.htm|Bzip for Windows]] Kompresison Batch.
-  * [[http://mastermo.at.tc/|ListenServerCreator und ModMaker]] kann zum installieren, updaten, warten des Servers verwendet werden. Das Uploaden der Dateien für den Fastdownload ist völlig automtisiert und benötigt nur die FTP-Daten des Webspace.+  * [[http://mastermo.at.tc/|ListenServerCreator und ModMaker]] kann zum installieren, updaten, warten des Servers verwendet werden. Das Uploaden der Dateien für den Fastdownload ist völlig automatisiert und benötigt nur die FTP-Daten des Webspace.
  
-=== Scripts ===+=== Scripts für die Kompression === 
 +Um die Arbeit zum komprimieren der Dateien zu automatisieren, kann man einfache Befehle bzw. Scripte unter Linux oder Batchdateien unter Windows nutzen.
 == Linux == == Linux ==
 Unter Linux kann man mit einfachen Trick entweder alle oder nur bestimmte Dateitypen mit bzip2 inklusive Unterverzeichnisse komprimieren.\\ \\  Unter Linux kann man mit einfachen Trick entweder alle oder nur bestimmte Dateitypen mit bzip2 inklusive Unterverzeichnisse komprimieren.\\ \\ 
 Alle Dateien komprimieren und Originaldateien erhalten: Alle Dateien komprimieren und Originaldateien erhalten:
-<code>find /pfad/ -exec bzip2 -9k  '{}' \;</code>+<code>find /pfad/ -type f -exec bzip2 -9k  '{}' \;</code>
  
 Dateien mit der Endung bsp, mp3 und wav komprimieren und Originaldateien erhalten: Dateien mit der Endung bsp, mp3 und wav komprimieren und Originaldateien erhalten:
-<code>find /pfad/ -name *.bsp -exec bzip2 -9k  '{}' \; +<code>find /pfad/ -type f -name *.bsp -exec bzip2 -9k  '{}' \; 
-find /pfad/ -name *.mp3 -exec bzip2 -9k  '{}' \; +find /pfad/ -type f -name *.mp3 -exec bzip2 -9k  '{}' \; 
-find /pfad/ -name *.wav -exec bzip2 -9k  '{}' \;</code>+find /pfad/ -type f -name *.wav -exec bzip2 -9k  '{}' \;</code>
 Lässt man bei bzip2 den Parameter ''k'' weg, so werden die Originaldateien nach erfolgreicher Kompression gelöscht.\\  Lässt man bei bzip2 den Parameter ''k'' weg, so werden die Originaldateien nach erfolgreicher Kompression gelöscht.\\ 
  
 Es gibt noch das Tool pbzip2, welches mehrere CPU-Kerne zur Komprimierung der Dateien verwendet. Der Client kann diese Dateien aber leider nicht vernünftig entpacken. Es ist deswegen von pbzip2 abzuraten. Es gibt noch das Tool pbzip2, welches mehrere CPU-Kerne zur Komprimierung der Dateien verwendet. Der Client kann diese Dateien aber leider nicht vernünftig entpacken. Es ist deswegen von pbzip2 abzuraten.
 == Windows == == Windows ==
-FIXME+Unter Windows muss das Programm bzip2 installiert werden. Es kann über [[http://gnuwin32.sourceforge.net/packages/bzip2.htm|gnuwin32.sourceforge.net]] bezogen werden. Dateien können dann in Verzeichnissen komprimiert werden. 
 +<code>xcopy /E /Y /I copy c:\gameserver\srcds\cstrike\maps c:\webserver\httpdocs\xyz 
 +bzip2 -9k c:\webserver\httpdocs\xyz</code> 
 +Bei diesem Beispiel werden alle Maps nach ''c:\webserver\httpdocs\xyz'' kopiert. Nach dem Kopieren werden die Dateiern komprimiert. Die alten Dateien bleiben erhalten. Bei erneuter Ausführung werden alle unkomprimierten Dateien überschrieben. Neu hinzugefügte Dateien werden auch kopiert. Durch Ausführen von bzip2 mit der Option ''-k'' werden die alten Dateien beibehalten. Bereits komprimierte Dateien werden nicht erneut komprimiert, was Zeit spart. Leider durchläuft bzip2 nicht automatisch alle Unterverzeichnisse.
  
 ===== Traffichijacking unterbinden ===== ===== Traffichijacking unterbinden =====
Zeile 92: Zeile 128:
  
  
-===== Beispiel ===== +==== Referer ====
 Bei diesem Beispiel könnte ein Client nur Dateien vom Webserver herunterladen, wenn er sich zum Server mit der IP ''192.168.0.1'' verbindet. Wichtig ist dabei, dass Punkte mit dem Zeichen ''\'' geschüzt werden, da sie ansonsten falsch verarbeitet würden. Bei diesem Beispiel könnte ein Client nur Dateien vom Webserver herunterladen, wenn er sich zum Server mit der IP ''192.168.0.1'' verbindet. Wichtig ist dabei, dass Punkte mit dem Zeichen ''\'' geschüzt werden, da sie ansonsten falsch verarbeitet würden.
 <code>SetEnvIfNoCase Referer hl2://192\.168\.0\.1 allow_download <code>SetEnvIfNoCase Referer hl2://192\.168\.0\.1 allow_download
Zeile 99: Zeile 135:
 Deny from all</code> Deny from all</code>
  
 +==== Verzeichnis-Index ==== 
 +Manche Webserver sind standardmäßig so eingerichtet, dass bei einer fehlenden index-Datei((index.htm, index.html, index.php)) das Verzeichnis mit dem Inhalt aufgelistet wird. So können andere Leute durch Eingabe der URL sehen, was sich auf dem Webserver befindet und sogar in den Unterverzeichnissen nachsehen. Ein fremder Gameserver-Admin kann dan z.B. sehen, was für Maps sich auf dem Webserver befinden und könnten so ihren eigenen Gameserver dementsprechend anpassen.\\  
 +Durch Hinzufügen folgender Zeile in der Datei ''.htaccess'', kann das automatisch vom Webserver generierte Index abgeschaltet werden: 
 +<code>options -indexes</code>
  
 ===== Software für Webserver ===== ===== Software für Webserver =====
-Es gibt viele kostenfreie Software für Windows. Unter Linux kann mit der Paketverwaltung der jeweiligen Distribution bequem ein Apache2-Webserver, LightHTTPd oder andere eingerichtet werden.+Es gibt viel kostenfreie Software für Windows. Unter Linux kann mit der Paketverwaltung der jeweiligen Distribution bequem Apache1, Apache2, LightHTTPd oder andere Webserver eingerichtet werden. Es ist gerade auf Lan-Partys von Vorteil einen Webserver für den Fastdownload bereitzustellen. So werden sehr große [[:maps]] innerhalb Sekunden heruntergeladen, während Gameserver ohne Fastdownload recht lange zum Übertragen der [[:maps]] benötigen. Der Webserver muss sich nicht auf dem gleichen Host befinden, auf dem der Gameserver läuft. 
 ==== Windows ==== ==== Windows ====
 ^ Paket/Programm ^ Beschreibung ^ ^ Paket/Programm ^ Beschreibung ^
fastdownload.txt · Zuletzt geändert: 2012/04/02 21:09 von DeaD_EyE