Filestorage

Laravel Storage Symbolik Links korrekt verlinken

Automatisches Erstellen von Symbolic Links in Laravel

Der Beste Weg symbolische Links zu erstellen ist ein Out-Of-The-Box Feature seit Laravel Version 5.3+. Hierfür gibt es einen artisan Befehl der den Symlink (symbolischer Link) erzeugt:

php artisan storage:link

Dieser Befehl erstellt einen Symlink in public/storage auf storage/app/public und das war es dann. Jede Datei in /storage/app/public kann dann per Link erreicht werden:

https://deine-domain.de/storage/image.jpg

Sollten, aus welchen Gründen auch immer, keine Symlinks erstellt werden können (ggf. verbietet es der Hoster etc.) oder es soll eine Zugriffslogik für Dateien geben, gibt es alternativ die Möglichkeit eine Route anzulegen für Anhänge oder Dateien. Beispielsweise nachfolgend eine sehr einfache Variante einer Custom storage Route:

Route::get('storage/{filename}', function ($filename) {
  $path = storage_path('public/' . $filename);

  // Prüfe, ob die Datei überhaupt existiert
  if (!File::exists($path)) {
    abort(404);
  }

  // Hole das File Object
  $file = File::get($path);
  $type = File::mimeType($path);

  // Bereite Response vor
  $response = Response::make($file, 200);
  $response->header("Content-Type", $type); // setze korrekte Header

  return $response;
});

Nun können ebenfalls Dateien erreicht werden, wie als ob ein Symlink existiert:

https://deine-domain.de/storage/image.jpg



Intervention Image Library Laravel

Bei der Verwendung der Intervention Image Library kann auch die eingebaute Response Funktion genutzt werden:

Route::get('storage/{filename}', function ($filename) {
  return Image::make(storage_path('public/' . $filename))->response();
});
Manuelles bereitstellen von Dateien durch eine Funktion wirkt sich auf die Performance aus, weil der gesamte Laravel Request Lebenszyklus durchlaufen werden muss! Normalerweise stellt der Server die Dateien direkt bereit ohne Laravel.
Andreas Pabst

Andreas Pabst hilft als langjähriger IT Trainer, Fachkräftetrainer und Führungskräftetrainer europaweit Firmen und Teams dabei gemeinsam mehr zu erreichen. Profitieren Sie von didaktischen Fähigkeiten als Hochschuldozent gleichermaßen wie von seiner Tätigkeit als Speaker und somit äußerst unterhaltsamen Seminaren.

Share
Veröffentlicht von
Andreas Pabst

Neue Beiträge

Wie erstelle ich eine Laravel Middleware: Schritt für Schritt Anleitung

Voraussetzung: Du musst ein Laravel Projekt erstellt haben und dich im Projektordner befinden. Um ein…

1 Jahr ago

Wie erstelle ich einen Laravel Job in der Queue?

Um eine Laravel-Queue zu erstellen, die eine E-Mail verschickt, müssen zunächst einmal alle Anforderungen für…

1 Jahr ago

Laravel Anfänger und Einsteiger Tutorial

Dieses Tutorial soll den perfekten und einfachen Einstieg in die Welt des Laravel Frameworks bieten.…

1 Jahr ago

Laravel Eloquent Performance Tipp

Einfache Konventionen Ich bin ein absoluter Laravel Fan, das vorneweg. Jedoch gibt es so gewisse…

3 Jahren ago

Laravel – Please provide a valid cache path

Neue Installation Laravel wirft häufig nach Installationen auf einem neuen System, ob Entwicklungsserver, Lokal oder…

4 Jahren ago

Model Beziehungen – Laravel Model Relationships

Laravel bietet verschiedene Möglichkeiten an, Beziehungen von Models abzubilden. Übersicht über die drei wichtigsten Beziehungen…

4 Jahren ago

This website uses cookies.