1. Home
  2. Konfiguration
  3. Grundeinstellungen
  4. Methoden zur Bereitstellung von Downloads

Methoden zur Bereitstellung von Downloads

Für Downloadartikel gibt es mehrere Möglichkeiten, Ihren Kunden herunterladbare Inhalte zu liefern, abhängig von Ihrer Hosting-Konfiguration.
Sie finden diese Optionen unter Konfiguration > Attributeinstellungen:
Downloads aktivieren sollte dort zunächst auf true gestellt werden.

Downloads über Weiterleitung

Wenn auf true gesetzt, wird die Linux/UNIX-Funktion „symlink“ verwendet, um eine temporäre Datei „stub“ im Ordner /pub zu erstellen.
Ihr Kunde wird dann für den Download zu diesem Dateistub weitergeleitet.
Das bedeutet, dass der Kunde immer nur über diesen Stub auf die Datei zugreifen kann, der nach dem Download auch wieder verschwindet.
Auf diese Weise wird der „echte“ Speicherort der Datei verborgen, so dass Ihre Kunden den Download-Link nicht einfach an andere weitergeben können, um Ihre Downloads kostenlos zu stehlen.
Diese Option funktioniert gut auf Linux-Hosts. Viele ältere Windows-Hosts, die ältere PHP-Versionen verwenden, unterstützen keine Symlinks.
Diese Option erfordert, dass der „pub“-Ordner auf Lese- und Schreibrechte gesetzt wird, normalerweise 777.
Diese Methode ist nicht von den PHP max_execution_time Beschränkungen betroffen.
Dieser Ansatz kann aber problematisch sein, wenn mehrere Personen gleichzeitig dasselbe Produkt kaufen und herunterladen, weil die temporäre Datei wieder gelöscht wird. Und wenn dies während des Downloads eines Benutzers geschieht, könnte das den Download unterbrechen.
Für Statistiken oder Analysen können Ihre Apache/Nginx-Protokolle mehr Aufschluss über Download-by-Redirect-Downloads geben. In PHP-Protokollen werden Sie diese nicht finden.

Downloads ohne Weiterleitung

Wenn die Einstellung Downloads über Weiterleitung auf „false“ gesetzt ist, dann ist der Download-Link, den der Kunde erhält, der direkte Link zu der Datei in Ihrem /download-Ordner, was bedeutet, dass er so oft herunterladen kann, wie er möchte, und den Link mit anderen teilen kann, was möglicherweise dazu führt, dass jemand Ihre Downloads stiehlt.
Diese Option hat ihre Sicherheitseinschränkungen, funktioniert aber sowohl auf Windows- als auch auf Linux-Hosts.
Diese Methode ist nicht von den PHP max_execution_time-Limits betroffen, und die Aktivitäten werden nicht in den PHP-Protokollen aufgeführt (wohl aber in den Apache/Nginx-Protokollen).

Streaming Download

Der Download per Streaming funktioniert nur, wenn Downloads über Weiterleitung deaktiviert ist.
Anstatt dem Kunden eine URL zu der Datei zu geben, liest ein PHP-Prozess die Datei in kleinen Schritten (4K-Chunks) und gibt diese als Datenstrom aus, bis er fertig ist.
Aus Sicherheitssicht wird dadurch vollständig verhindert, dass ein Download-Link jemals an Nicht-Kunden weitergegeben wird, da die Kunden den Download nur von einer eingeloggten Kontositzung über ihre Bestellhistoryseite durchführen können.
Diese Option funktioniert sowohl auf Windows- als auch auf Linux-Hosts.
Es gibt eine Einschränkung bei dieser Methode:
Die PHP-Einstellung max_execution_time muss auf einen Wert gesetzt werden, der hoch genug ist, um den Download Ihrer größten Datei abzuschließen.
Zen Cart versucht, die Zeit auf 25 Minuten einzustellen, aber einige Server haben eine Master-Einstellung, die verhindert, dass Zen Cart diese überschreibt.
Der Standardwert von PHP ist oft 30 oder 60 Sekunden.)

Dateien aus der Cloud verwenden (Remote-URLs)

Seit Version 1.5.6 können Sie optional herunterladbare Produkte/Dateien über externe Dienste wie AWS, Dropbox, Google Drive usw. bereitstellen, anstatt sie auf dem Webserver Ihres eigenen Shops zu hosten.

Bereitstellen von Dateien über eine URL, z. B. durch Freigabe von Dropbox-Links

Im Attributmanager oder im Download Manager können Sie eine URL anstelle eines Dateinamens angeben.
Wenn der „Dateiname“ mit https:// beginnt, wird er wie eine Remote-URL behandelt.

Sie können optional eine Dateigröße angeben, wie z. B.:
https://example.com/filename.ext:number_of_bytes
Diese Größe hilft den Browsern bei der Anzeige des Download-Fortschritts und wird auch neben der Download-Schaltfläche angezeigt.

Denken Sie daran, dass URLs wie diese KEINEN Schutz vor Diebstahl bieten:
Sobald der Link an einen Kunden weitergegeben wurde, kann dieser ihn an jeden anderen weitergeben und erneut herunterladen.

TIPP:
Wenn Sie Dropbox-Links für Ihre Datei-URLs verwenden, ändern Sie das &dl=0 in &dl=1 für den „Freigabelink“, den Dropbox Ihnen gibt.
Dadurch wird der Download sofort ausgeführt, und der Kunde sieht nicht, dass die Datei auf der Dropbox-Website geöffnet ist.

Achten Sie auch bei der Freigabe von URLs anderer Cloud-Speicherdienste darauf, dass der von Ihnen verwendete „Freigabelink“ sicher ist.

Testen Sie den Link in einem privaten Browsermodus oder im Inkognitomodus, um sicherzustellen, dass der Link funktioniert und dass Sie nicht zu viele Berechtigungen erteilen (z. B. wenn Sie versehentlich eine Google-Docs-Seite im Bearbeitungsmodus freigeben).

Dateien über AWS bereitstellen

Möglicherweise möchten Sie Amazon S3 zum Hosten Ihrer Downloads verwenden.

Nachdem Sie Ihre AWS-Zugangsdaten eingerichtet haben (siehe unten), geben Sie einfach aws:bucketname/filename.ext:number_of_bytes als Dateinamen in Attributmanager an.
Der optionale Teil :number_of_bytes ist die Dateigröße, die dem Kunden angezeigt wird und es ermöglicht, dass der Download-Fortschritt vom Browser erkannt werden kann.

Um Ihre AWS-Anmeldeinformationen festzulegen, erstellen Sie eine Datei:

includes/extra_datafiles/dev-aws_credentials.php

mit folgendem Inhalt und tragen Ihren Access Key und Secret Key ein:

<?php
if (!defined('IS_ADMIN_FLAG')) die('UNAUTHORIZED');
// AWS website: https://console.aws.amazon.com
// Use the AWS console's IAMS screen to create a user for downloading your S3 files.
// Copy the Access Key and Secret and insert them as shown, below:
define('AMAZON_S3_ACCESS_KEY', '123456789');
define('AMAZON_S3_ACCESS_SECRET', '123456789');

Bei der Freigabe von AWS-Links wie diesem wird ein Sicherheits-Token zur Download-URL hinzugefügt, die von Ihrem Shop generiert wird, wenn der Kunde auf den Download-Link/Button in seiner Bestellhistorie klickt.
Dies begrenzt die Anzahl der Downloads, die der Kunde durchführen kann, und verhindert unautorisierte Downloads.

Alternativen
Um gesicherte Downloads über andere Cloud-Anbieter zu ermöglichen, ist das Klonen der Datei /includes/classes/observers/auto.downloads_via_aws.php ein guter Ausgangspunkt, um eine Integration mit der API eines anderen Anbieters zu erstellen.


Beitrags Info:

zuletzt aktualisiert am 29. Mai 2022 um 11:57

Beitrags Tags:


War dieser Beitrag hilfreich?

Weitere Beiträge zu diesem Thema