Download von extern (über FTP) hochgeladenen Files begrenzen und per Counter zählen
am 14.06.2009 - 10:26 Uhr in
Für ein Softwareprojekt möchte meine Dateien zum Download anbieten. Da die PHP-Einstellungen die Größe eines Uploads auf 8 MB beschränken, wurde die (erheblich größere) Datei separat über FTP hochgeladen. Nun soll die Datei natürlich auch zum Download angeboten werden. Wird sie direkt verlinkt, hat man allerdings keine Kontrolle mehr darüber. Der Link kann beliebig weitergegeben werden und einen Counter hat man ebenfalls nicht mehr. Die Downloadmodule die ich bisher fand, basieren aber leider alle darauf, dass die Dateien als Beitragsanhang hochgeladen wurden.
Bei Rapidshare fand ich die Gesicherter TrafficShare-Funktion. Sie ermöglicht es für Dateien zeitlich begrenzte, einmalige Downloadlinks mit Hilfe eines kleinen PHP-Scriptes zu erstellen (siehe FAQ: Wie wird der TrafficShare Link gesichert?). Nachteil: Es wird der zusätzliche (kostenpflichtige) Hoster benötigt.
Daher zwei Fragen:
1. Gibt es eine Möglichkeit (Modul), sowas mit Drupal zu bewerkstelligen? Wenn ja: Wie?
oder
2. Wie lässt sich dieses Script so einbinden, dass ich mit einer Drupalseite darauf zugreifen kann, der Programmcode aber auf keinen Fall eingesehen werden kann? Lt. o.g. FAQ sollte das Script auch nicht mit JavaScript oder einer anderen Scriptsprache eingebunden werden, da sonst der Code ersichtlich wird und Dritte die Datei entfernen könnten.
- Anmelden oder Registrieren um Kommentare zu schreiben

Hallo, zu 1) Du könntest
am 14.06.2009 - 10:44 Uhr
Hallo,
zu 1) Du könntest Dir einen Content-Typen erstellen der genau diese benötigten Daten (fileid,filename,zeit etc.) zur Eingabe fordert und bei der Ausgabe die Daten in das Script setzt.
zu 2) Das Einfachste meiner Meinung nach ist (würde aber Methode oben vorziehen, wenn Du mehrere Files hast), wenn Du in einer Node einfach php aktivierst und dann den/das Snippet reinkopierst:
<?
$premiumaccount = "12345"; // Premium-Account ID einsetzen
$fileid = "12345678"; // File ID einsetzen
$filename = "yourfile.zip"; // Dateiname einsetzen
$killcode = "123456789012345"; // Killcode der Datei. Bei der Option "Export mit Details" in der Premium-Zone sichtbar
$validuntil = time() + 300; // Gültig für 300 Sekunden von jetzt an
$md5hex = md5($premiumaccount.",".$fileid.",".$killcode.",".$validuntil);
print "Gesicherter Link ist: http://rapidshare.com/files/$fileid/t$validuntil-$md5hex/$filename";
?>
den Code sehen nur Leute, die auch die Node editieren dürfen, der Rest sieht ja nur die PHP Ausgabe.
Eine eigene Methode um die Dateien in Drupal zu sichern und zu zählen, mit Ablauf ist mir so nicht bekannt, lasse mich da aber gerne von anderen auch drüber aufklären.
Gruß,
Andreas
----------------------------------------
Nur Wer Selbst Brennt, Kann Das Feuer In Anderen Entfachen! - http://cybercore.de
Vielen Dank für deine
am 14.06.2009 - 11:38 Uhr
Vielen Dank für deine Rückmeldung! Da es wohl ohne Rapidshare keine vergleichbare Downloadmöglichkeiten für Drupal gibt, stellt der Counter im Prinzip auch kein größeres Thema mehr dar, da Rapidshare einen eigenen Zähler hat.
Methode 1 hört sich gut an, aber im Moment fehlt mir etwas die Zeit um mich näher damit zu befassen. Mittel- und langfristig werde ich das wahrscheinlich aber dann wohl so umsetzen.
Kurzfristig würde Methode 2 ausreichen. Aber wie kann man php für eine einzelne Seite aktivieren?
Edit:
Hat sich erledigt. Das PHP filter-Modul war noch deaktiviert.
Vielen Dank erstmal!
P.S.: Da die Lösung eigentlich nur ein Workaround mittels Rapidshare ist, lass ich die [gelöst]-Markierung des Threads erstmal weg. Ohne Rapidshare wäre natürlich optimal. ;-)
PHP aktivieren in einer Node
am 14.06.2009 - 11:37 Uhr
Hallo,
das geht über einen Eingabefilter/Eingabeformat, aber zuerst das Modul 'PHP filter' aktivieren:
http://deineseite/admin/settings/filters
da solltest Du nun einen neuen Filter finden, diesen kannst Du einer Benutzergruppe zuweisen, das sollte nur Administratoren vorbehalten sein.
Dann bei den Eingabeformaten, wenn Du eine Node erstellst einfach unten den Filter auswählen und es sollte klappen.
Gruß,
Andreas
----------------------------------------
Nur Wer Selbst Brennt, Kann Das Feuer In Anderen Entfachen! - http://cybercore.de
Hat sich wohl gerade
am 14.06.2009 - 11:40 Uhr
Hat sich wohl gerade mit meinem Edit überschnitten. Dennoch vielen Dank!