Was ist der Dateispeicher?
Laravel bietet eine mächtige Abstraktionsebene über Dateisysteme, die auf dem PHP-Paket Flysystem basiert. Damit können Sie unterschiedliche Storage-Backends – lokale Disks, SFTP, Amazon S3 – über dieselbe API ansprechen. Zwischen Umgebungen umzuschalten erfordert keine Codeänderungen.Ein Treiberwechsel erfordert keine Code-Anpassung. Eine typische Konfiguration – lokal in der Entwicklung, S3 in der Produktion – lässt sich problemlos umsetzen.
Konfiguration
Die Dateisystem-Einstellungen liegen zentral inconfig/filesystems.php.
Dort definieren Sie „Disks”. Eine Disk ist die Kombination aus einem bestimmten Treiber und einem Speicherort.
Die wichtigsten Treiber:
local-Treiber
Der Treiberlocal arbeitet relativ zum in der filesystems-Konfiguration angegebenen root-Verzeichnis.
Standardmäßig entspricht root dem Pfad storage/app/private.
Standard-Disk ändern
Über die UmgebungsvariableFILESYSTEM_DISK schalten Sie die Standard-Disk um.
public-Disk und Symlink
Diepublic-Disk ist für Dateien gedacht, die über den Webserver zugänglich sein sollen.
Standardmäßig werden diese Dateien unter storage/app/public gespeichert.
Damit der Webserver die Dateien ausliefern kann, legen Sie einen Symlink von public/storage nach storage/app/public an.
1
Symlink anlegen
2
Datei-URL erzeugen
Nach dem Anlegen des Symlinks können Sie URLs über den Helper
asset erzeugen.storage:unlink.
Grundoperationen mit der Storage-Facade
Dateien lesen
Dateien schreiben
Schlägt
put fehl, gibt es standardmäßig false zurück.
Mit 'throw' => true in der Disk-Konfiguration können Sie Ausnahmen auslösen lassen.Dateien löschen
Dateien als Download
URLs erzeugen
Reguläre URL
local-Treiber ergibt das eine relative URL wie /storage/file.jpg.
Für den s3-Treiber wird die vollständige Remote-URL zurückgegeben.
Temporäre URL
Für zeitlich begrenzte URLs nutzen SietemporaryUrl. Unterstützt werden die Treiber local und s3.
Datei-Uploads
Ein gängiges Muster: Formular-Uploads eines Nutzers speichern.store (Dateiname automatisch)
storeAs (Dateiname angeben)
Upload auf einer bestimmten Disk
Upload über die Storage-Facade
Sichtbarkeit (Visibility)
In Flysystem wird die Sichtbarkeit einer Datei übervisibility gesteuert.
storePublicly.
Mehrere Disks nutzen
Mitdisk wechseln Sie zwischen den Zielen.
Cloud-Speicher (S3) konfigurieren
Paket installieren
Umgebungsvariablen setzen
Legen Sie die Zugangsdaten in Ihrer.env-Datei ab.
Auch S3-kompatible Dienste wie DigitalOcean Spaces, Cloudflare R2 oder Vultr Object Storage lassen sich mit dem
s3-Treiber verwenden.
Geben Sie in der Option endpoint die URL des Dienstes an.Metadaten von Dateien abfragen
Verzeichnisoperationen
Testen
MitStorage::fake() schreiben Sie Tests, ohne echte Dateien anzufassen.
Für
UploadedFile::fake()->image() benötigen Sie die GD-Erweiterung von PHP.Praxisbeispiel: Profilbild hochladen
Ein praxisnaher Controller, der Validierung, Speicherung und das Ablegen des Pfads in der Datenbank kombiniert.Storage::url().