Get file ist signiert URL von amazon s3 mit dem Dateisystem Laravel 5.2
Ich bin auf der Suche nach eine gute Lösung, um die signierte url von amazon s3.
Habe ich eine version arbeiten, aber nicht mit laravel:
private function getUrl ()
{
$distribution = $_SERVER["AWS_CDN_URL"];
$cf = Amazon::getCFClient();
$url = $cf->getSignedUrl(array(
'url' => $distribution . self::AWS_PATH.rawurlencode($this->fileName),
'expires' => time() + (session_cache_expire() * 60)));
return $url;
}
Ich weiß nicht, ob dies ist der beste Weg, dies zu tun mit laravel, wenn man bedenkt es hat eine gesamte Datei-system zu arbeiten...
Aber wenn nicht auf andere Art und Weise, wie Kriege ich den client? Debugging habe ich gefunden, eine Instanz innerhalb des Dateisystem-Objekts, aber es geschützt ist...
- In Laravel 5.5 gibt es eine
temporaryUrl
Methode, die Sie verwenden können, mit S3 laravel.com/docs/5.5/filesystem#file-urls
Du musst angemeldet sein, um einen Kommentar abzugeben.
In Laravel,
Stellen Sie sicher, dass die AWS für flysystem Komponist Paket zu (version variieren):
::temporaryUrl
).Für Laravel 5.5 und höher,
Sie können jetzt temporäre URLs/s3 presigned URL.
Funktioniert dies nur für den s3-storage-Treiber ist, soweit ich weiß.
https://laravel.com/docs/5.5/filesystem#retrieving-files
$url = Storage::disk('s3')->temporaryUrl( ... );
.s3
zu vermeiden, die Ausnahme Dank @pnairn