1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Deutsch
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

Route [storage.local] not defined

    • PHP
  • Syntafin
  • 19. September 2024 um 20:11
  • Unerledigt
  • Online
    Syntafin
    27
    Syntafin
    LISTstack Dev
    Reaktionen
    498
    Punkte
    7.773
    Trophäen
    2
    Beiträge
    1.412
    • 19. September 2024 um 20:11
    • #1

    Vielleicht weiß ja das Schwarm Wissen was das Problem ist, oder wie ich das geschafft habe...

    Mit der Ankündigung von temporären URLs für lokale Dateien wollte ich das nun für meine Download funktion verwenden, gesagt getan...
    Aber nun spuckt es mir einen Fehler aus, den ich mir nicht erklären kann:

    Code
    Route [storage.local] not defined.

    Das ganze sieht im Code so aus:

    PHP
    use Illuminate\Support\Facades\Storage;
    
    return Storage::disk("local")->temporaryUrl(
      "files/0bAYv2PrGOTPxFRAS4wg8WR1Wf6Lnkeiy15iFz1q.png",
      now()->addMinutes(5)
    );

    Die Datei existiert (außer Frage), aber wie kommt es das ich es scheinbar schaffe vor dem Registrieren der Routen das auszuführen :thinking_face:.

    Falls jemand eine Idee hat, wäre das Hilfreich!

    A red dragon falls from the heavens... Ah, that memory has been lost. A shame. It was a favorite of mine...

  • Blacksonny
    16
    Blacksonny
    Moderator
    Reaktionen
    138
    Punkte
    2.643
    Trophäen
    1
    Beiträge
    482
    • 19. September 2024 um 21:07
    • #2

    Laut Eigenrecherche soll es nicht möglich sein ohne weiteres temporaryUrl für local disk zu benutzen.

    Bin dann aber auf diesen Beitrag gestoßen, vielleicht hilft dir das weiter: https://dev.to/abrardev99/lar…age-driver-50of


    Edit: Klingt aber auch danach als ob die Route schlicht weg nicht definiert wurde. Vielleicht fehlt es in der config/filesystems.php

  • Online
    Syntafin
    27
    Syntafin
    LISTstack Dev
    Reaktionen
    498
    Punkte
    7.773
    Trophäen
    2
    Beiträge
    1.412
    • 19. September 2024 um 21:16
    • #3

    Wie gesagt im Startbeitrag:

    Laravel - The PHP Framework For Web Artisans
    Laravel is a PHP web application framework with expressive, elegant syntax. We’ve already laid the foundation — freeing you to create without sweating the…
    laravel.com

    Ich bezog mich auf die offizielle Dokumentation und die Ankündigung der Laracon :) und mit 11.23.x kam es dann ja auch rein.

    Die Config ist auch entsprechend angepasst meinerseits:

    So wirklich erklären kann ich es mir ja deswegen nicht.

    A red dragon falls from the heavens... Ah, that memory has been lost. A shame. It was a favorite of mine...

  • Blacksonny
    16
    Blacksonny
    Moderator
    Reaktionen
    138
    Punkte
    2.643
    Trophäen
    1
    Beiträge
    482
    • 19. September 2024 um 21:23
    • #4

    Oh sry hab ich überflogen anscheinend mein Fehler.

    Das ist ziemlich komisch mir würden noch folgende Ansätze einfallen:

    1. Die Route manuell versuchen zu laden scheinbar soll das so funktionieren:

    PHP
    use Illuminate\Support\Facades\Route;
    use Illuminate\Support\Facades\Storage;
    
    Route::get('/temporary-url/{path}', function ($path) {
        return Storage::disk('local')->temporaryUrl($path, now()->addMinutes(5));
    });


    2. Versuchen den Cache zu leeren und die Abhängigkeiten neu zu laden:

    Code
    composer install
    php artisan route:clear
    php artisan config:clear
    php artisan cache:clear


    Sind natürlich keine Tipps vom Experten, sondern auf eigener Recherche um dir behilflich sein zu können :)

  • Online
    Syntafin
    27
    Syntafin
    LISTstack Dev
    Reaktionen
    498
    Punkte
    7.773
    Trophäen
    2
    Beiträge
    1.412
    • 20. September 2024 um 09:05
    • #5

    Mein Code macht genau das was du vorgeschlagen hast :grinning_face_with_smiling_eyes:.

    Im Endeffekt liefert die ganze Funktion nur die URL an das Frontend, deswegen ja das Return am Ende.


    Ein Sneaky-Update!

    Local Temporary Urls only work for the last defined disk · Issue #52872 · laravel/framework
    Laravel Version 11.23.5 PHP Version 8.3.11 Database Driver & Version MySQL 8.0.39 for Linux on x86_64 Description I tried out the new temporaryUrl() for the…
    syntaf.in

    Das Problem ist nicht wirklich ein Problem, wenn man etwas merkt... einen Bug :grinning_squinting_face: .

    Meine bisherige Config:

    PHP
    <?php
    
    return [
    
        'disks' => [
            'resources' => [
                'driver' => 'local',
                'root' => resource_path(),
                'throw' => 'false',
            ],
    
            'watermark' => [
                'driver' => 'local',
                'root' => storage_path('app/watermark'),
                'throw' => false,
                'serve' => true,
            ],
    
            'files' => [
                'driver' => 'local',
                'root' => storage_path('app/files'),
                'throw' => false,
                'serve' => true,
            ],
        ],
    
    ];
    Alles anzeigen

    Das Problem dabei, nur für files können nun URLs erzeugt werden, für watermark nicht :grinning_face_with_smiling_eyes:.

    A red dragon falls from the heavens... Ah, that memory has been lost. A shame. It was a favorite of mine...

    Einmal editiert, zuletzt von Syntafin (20. September 2024 um 23:38)

  • PixelPatron
    20
    PixelPatron
    github.com/pixelpatron90
    Reaktionen
    164
    Punkte
    4.059
    Beiträge
    720
    Einträge
    3
    • 16. November 2024 um 20:59
    • #6

    Also ich bin grade erst eingestiegen aber hab mir das durchgelesen und man kann jetzt quasi sagen es ist kein bug sondern so gewollt? Sorry aber dann verstehe ich den Sinn nicht. Kann mich jemand aufklären? ????

    pixelpatron-100000?style=for-the-badge&logo=X&logoColor=white&labelColor=000000&color=FF0000 pixel_patron-100000?style=for-the-badge&logo=Discord&logoColor=white&labelColor=000000&color=FF0000 pixelpatron90-100000?style=for-the-badge&logo=GitHub&logoColor=white&labelColor=black&color=FF0000

    https://evarioo.eu/

  • Online
    Syntafin
    27
    Syntafin
    LISTstack Dev
    Reaktionen
    498
    Punkte
    7.773
    Trophäen
    2
    Beiträge
    1.412
    • 16. November 2024 um 21:07
    • #7

    Es fehlte einfach zu dem Zeitpunkt in der Dokumentation einige Dinge, die sind nun durch ein PR meinerseits und einiger anderer aber nachgeholt worden.

    Für mehrere Dateisysteme für lokale temporäre URLs, muss man auch noch eine URL festlegen, wie man hier am Ende sieht:

    PHP
    <?php
    return [
        'disks' => [
                'resources' => [
                            'driver' => 'local',
                                        'root' => resource_path(),
                                                    'throw' => 'false',
                                                            ],
                                                                    'watermark' => [
                                                                                'driver' => 'local',
                                                                                            'root' => storage_path('app/public/files/watermark'),
                                                                                                        'throw' => false,
                                                                                                                    'serve' => true,
                                                                                                                                'url' => 'storage-watermark',
                                                                                                                                        ],
                                                                                                                                                'files' => [
                                                                                                                                                            'driver' => 'local',
                                                                                                                                                                        'root' => storage_path('app/files'),
                                                                                                                                                                                    'throw' => false,
                                                                                                                                                                                                'serve' => true,
                                                                                                                                                                                                            'url' => 'storage-files',
                                                                                                                                                                                                                    ],
                                                                                                                                                                                                                        ],
                                                                                                                                                                                                                        ];
    Alles anzeigen

    A red dragon falls from the heavens... Ah, that memory has been lost. A shame. It was a favorite of mine...

  • PixelPatron
    20
    PixelPatron
    github.com/pixelpatron90
    Reaktionen
    164
    Punkte
    4.059
    Beiträge
    720
    Einträge
    3
    • 17. November 2024 um 10:22
    • #8

    Zack! Und jetzt machts sinn ???? gut zu wissen. Warum wird denn nicht wie sonst auch ein random Name für die Route angelegt? Also so wie wenn man keinen Namen Parameter setzt

    pixelpatron-100000?style=for-the-badge&logo=X&logoColor=white&labelColor=000000&color=FF0000 pixel_patron-100000?style=for-the-badge&logo=Discord&logoColor=white&labelColor=000000&color=FF0000 pixelpatron90-100000?style=for-the-badge&logo=GitHub&logoColor=white&labelColor=black&color=FF0000

    https://evarioo.eu/

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!

Benutzerkonto erstellen Anmelden

Tags

  • laravel
  • temporaryurl

Benutzer online in diesem Thema

  • 1 Besucher

Rechtliches

Impressum

Datenschutzerklärung

  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  • Deutsch
  • English
Zitat speichern