leonb: Dateidownloads anbieten - scheinbar unlösbares Problem

Hallo!
Ich möchte einen Webshop für meine eigene selbstgemachte Musik erstellen und dort die Möglichkeit bieten, diese Musik runterzuladen. Da ich meine Musik verkaufen möchte, sind direkte Links auf die Audiodateien zwar der einfachste aber nicht mein gewünschter Weg ;)
Das was dem halbwegs erfahrenen Seitenbastler natürlich sonst gleich einfällt, ist ein Download über PHP. Also Header senden und dann per readfile die Daten senden... AAABER: Mein Hoster hat eine maximale Scriptlaufzeit von 2 Minuten. Das mag bei einer guten absolut unausgelasteten Internetverbindung gerade für ein kleines MP3 reichen, muss es aber nicht. Zudem ist es durchaus möglich, daß wer mit einer langsameren Verbindung unterwegs ist. Ausserdem möchte ich auch ganze Musikalben (im Durchschnitt 80 MB gross) als RAR-Archiv anbieten und DA reichen dann zwei Minuten selbst mit einer guten DSL Verbindung nicht.
Die nächste Idee, nachdem man ein wenig gegoogled hat, ist das Apache Modul mod_xsendfile. Nun... mein Provider hat das nicht aktiviert und will es auch nicht.

Meine Frage: Fällt irgend jemandem sonst noch eine Lösung ein, bei der ich:
1. keinen direkten URL zur Meidiendatei herausgeben muss?
2. nicht ewig für jeden Kunden temporäre Dateien anlegen muss (bin nicht Krösus -> mein Webspace ist begrenzt)

???

Vielen Dank für jegliche Hilfe
Sonny

  1. Hi,

    Meine Frage: Fällt irgend jemandem sonst noch eine Lösung ein, bei der ich:

    1. keinen direkten URL zur Meidiendatei herausgeben muss?
    2. nicht ewig für jeden Kunden temporäre Dateien anlegen muss (bin nicht Krösus -> mein Webspace ist begrenzt)

    Mir fiele da Amazons S3 (Simple Storage Service) ein, mit dem du genau das umsetzen kannst.

    Bis die Tage,
    Matti

    1. Tach!

      Meine Frage: Fällt irgend jemandem sonst noch eine Lösung ein, bei der ich:

      1. keinen direkten URL zur Meidiendatei herausgeben muss?
      2. nicht ewig für jeden Kunden temporäre Dateien anlegen muss (bin nicht Krösus -> mein Webspace ist begrenzt)
        Mir fiele da Amazons S3 (Simple Storage Service) ein, mit dem du genau das umsetzen kannst.

      Meines Wissens erfüllt S3 den Punkt 1 nicht wirklich. Die Dateien liegen unter einer S3-Adresse und müssen von der leonbs Webseite aus verlinkt werden, damit die Browser der Kunden sie holen können. Damit sind die Links dann herausgegeben. Sie könnten höchstens noch mit HTTP-Authentication gesichert werden (wobei ich nicht weiß, ob das bei S3 zur Verfügung steht), aber das kann er auch auf Webspace bei seinem Hoster realisieren.

      dedlfix.

      1. Hi,

        Tach!

        Meine Frage: Fällt irgend jemandem sonst noch eine Lösung ein, bei der ich:

        1. keinen direkten URL zur Meidiendatei herausgeben muss?

        Meines Wissens erfüllt S3 den Punkt 1 nicht wirklich. Die Dateien liegen unter einer S3-Adresse und müssen von der leonbs Webseite aus verlinkt werden, damit die Browser der Kunden sie holen können. Damit sind die Links dann herausgegeben. Sie könnten höchstens noch mit HTTP-Authentication gesichert werden (wobei ich nicht weiß, ob das bei S3 zur Verfügung steht), aber das kann er auch auf Webspace bei seinem Hoster realisieren.

        Zitat von http://aws.amazon.com/articles/5050:
        3.       If you would like to provide your users with a URL that enables them to access your bucket (or objects) then pre-signed URLs are another option to consider. Pre-signed URLs can be used to provide a URL that your users can employ to upload files with predefined names, as well as granting time-limited permission to download objects or list the contents of a bucket. This provides your users with limited access to a specific resource, removing the need to grant public access to your bucket (or objects).

        Diese "time-limited permission" ist das, was er will; m.W. kann man das auch so einstellen, dass die URL nur einmal funktioniert.

        Aber ich bin kein S3-Experte, habe da nur vor einiger Zeit quer alles gelesen, was die so kann.

        Bis die Tage,
        Matti

    2. Hi!

      Meine Frage: Fällt irgend jemandem sonst noch eine Lösung ein, bei der ich:

      1. keinen direkten URL zur Meidiendatei herausgeben muss?
      2. nicht ewig für jeden Kunden temporäre Dateien anlegen muss (bin nicht Krösus -> mein Webspace ist begrenzt)

      Mir fiele da Amazons S3 (Simple Storage Service) ein, mit dem du genau das umsetzen kannst.

      Etwas ähnliches bietet auch Microsoft Azure mit dem Blob Storage.

      Viele Grüße,
      Lukas

  2. Hallo,

    Das was dem halbwegs erfahrenen Seitenbastler natürlich sonst gleich einfällt, ist ein Download über PHP. Also Header senden und dann per readfile die Daten senden... AAABER: Mein Hoster hat eine maximale Scriptlaufzeit von 2 Minuten.

    das spielt in diesem Fall keine Rolle, weil die Zeit, die das Script mit I/O und Warten verbringt, nicht zur Script-Laufzeit zählt. Die zwei Minuten, die dir zugestanden werden, sind reine Rechenzeit des Scripts.

    Ciao,
     Martin

    --
    Paradox ist, wenn der Innenminister sich äußert und der Außenminister sich erinnert.
    Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
    1. Tach!

      AAABER: Mein Hoster hat eine maximale Scriptlaufzeit von 2 Minuten.
      das spielt in diesem Fall keine Rolle, weil die Zeit, die das Script mit I/O und Warten verbringt, nicht zur Script-Laufzeit zählt. Die zwei Minuten, die dir zugestanden werden, sind reine Rechenzeit des Scripts.

      Es kommt drauf an. Wenn man den eingebauten PHP-Mechanismus nimmt, dann stimmt das. Unabhängig davon kann der Hoster noch eine andere Überwachung laufen haben, die das PHP "von außen" killt.

      dedlfix.

  3. Hello,

    Du musst ja nicht das ganze File kopieren für den Kunden, sondern nur ein Verzeichnis für ihn anlegen, in dem eine .htaccess-Datei liegt.

    In dieser steht die serverinterne Umleitung auf das File

    Das Verzeichnis kannst Du so auch per htaccess-Passwort schützen, wenn Du willst

    Zwar muss das File dann auch per HTTP zugänglich sein, die URL wird aber umgeschrieben. Wenn die Dateinamen genügend lang und cryptisch sind, hast Du dadurch also etwa dieselbe Sicherheit, wie bei einer Session.

    Liebe Grüße aus dem schönen Oberharz

    Tom vom Berg

    --
     ☻_
    /▌
    / \ Nur selber lernen macht schlau
    http://bergpost.annerschbarrich.de