Diese Code-Schnipsel aus dem Laravel docs, https://laravel.com/docs/5.5/responses#file-responses, nur zu sein scheint, was ich brauche:Laravel: Anzeigedatei von Cloud-Speicher im Browser
return response()->file($pathToFile);
Das Problem ist, dass meine Datei auf einer S3 Platte gespeichert ist, und ich kann nicht richtig darauf verweisen.
Ich versuchte, Storage::disk('s3')->getDriver()->getAdapter()->applyPathPrefix($myPath);
zu verwenden, um den vollständig qualifizierten Dateinamen zu erhalten. Es hat aber nur den Wert $myPath
zurückgegeben.
Ich habe dann versucht, die URL mit Storage::disk('s3')->url($myPath);
Die URL sieht gut aus, aber Symphony sagt, es existiert nicht. Wenn ich jedoch mit Storage::disk('s3')->exists($myPath);
überprüfe, gibt es true
zurück.
Wie gehe ich vor, um eine Datei aus dem Cloud-Speicher direkt im Browser des Benutzers anzuzeigen?
EDIT:
Details siehe unten:
- Um das Element in der ersten Instanz zu speichern Ich bin mit
$map->storeAs('/my/path/maps/filename.pdf', ['disk' => 's3']);
- Der Ausgang der
url()
ist "https://s3.ap-southeast-2.amazonaws.com/my.domain.com/my/path/maps/filename.pdf" - Als ich Cut- und -über die URL in einer Browser-Adressleiste, lädt es kein Problem
- Es scheint mir, dass die
response()->file()
Methode Akzeptiert keinen URL-Parameter. Ist das der Fall?
Frage - Muss die Datei öffentlich verfügbar sein? (Es ist derzeit, aber ich würde es vorziehen, es privat zu machen).
Ihr zweiter Punkt Punkt „die Ausgabe von url()“ sieht richtig. Wie benutzt du die Ausgabe von url()? Was erwarten Sie von der Antwort? – Chris