{"id":24917,"date":"2021-05-28T14:33:00","date_gmt":"2021-05-28T11:33:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=24917"},"modified":"2021-10-18T02:38:24","modified_gmt":"2021-10-17T23:38:24","slug":"so-laden-sie-eine-datei-mit-dem-laravel-dateisystem-auf-s3-hoch","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/de\/so-laden-sie-eine-datei-mit-dem-laravel-dateisystem-auf-s3-hoch\/","title":{"rendered":"So laden Sie eine Datei mit dem Laravel-Dateisystem auf S3 hoch"},"content":{"rendered":"<p>Vor kurzem habe ich einen Artikel zum <a href=\"https:\/\/themewp.inform.click\/de\/hochladen-von-dateien-auf-amazon-s3-mit-aws-php-sdk\/\" title=\"Hochladen von Dateien in Amazon S3 mit AWS PHP SDK ver\u00f6ffentlicht\" >Hochladen von Dateien in Amazon S3 mit AWS PHP SDK ver\u00f6ffentlicht<\/a>. Einer unserer Leser fragte, wie man mit Laravel AWS S3-Upload-Dateioperationen durchf\u00fchrt. Bei Laravel m\u00fcssen wir im Vergleich zu PHP einen anderen Weg einschlagen. In diesem Artikel untersuchen wir, wie Sie mit einem Laravel-Dateisystem eine Datei auf S3 hochladen.<\/p>\n<p><a href=\"https:\/\/laravel.com\/docs\/master\/filesystem\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Laravel Filesystem<\/a> bietet verschiedene Treiber f\u00fcr die Arbeit mit dem lokalen Dateisystem, Amazon S3, Rackspace usw. Diese Treiber bieten eine bequeme und einfache M\u00f6glichkeit, Dateien lokal oder in die Cloud hochzuladen.<\/p>\n<p>Amazon S3 ist ein beliebter Dienst zum Speichern von Bildern, Dateien und Dokumenten. Zweitens spart die Speicherung Ihrer Dateien in der Cloud viel Bandbreite f\u00fcr Ihre Website. Es spart Ihren Hosting-Speicherplatz und die Cloud-Leistung ist skalierbar.<\/p>\n<p>Lassen Sie uns jedoch einen Blick darauf werfen, wie Sie eine Datei mit dem Laravel-Dateisystem auf S3 hochladen.<\/p>\n<h3>Holen Sie sich Ihre AWS-Sicherheitsanmeldeinformationen<\/h3>\n<p>Um mit S3 zu beginnen, sollten Sie ein Konto bei <a href=\"https:\/\/aws.amazon.com\/s3\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Amazon Web Services haben<\/a>. Sobald Sie es haben, stellen Sie sicher, dass Sie den S3-Dienst aktivieren.<\/p>\n<p>Rufen Sie nach der Aktivierung des S3-Dienstes Ihre Sicherheitsanmeldeinformationen ab, die wir im sp\u00e4teren Teil des Tutorials ben\u00f6tigen.<\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20443-6081f26f1f0bf.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20443-6081f26f1f0bf.png\" alt=\"So laden Sie eine Datei mit dem Laravel-Dateisystem auf S3 hoch\" ><\/a><\/p>\n<h3>S3-Treiberkonfiguration in Laravel<\/h3>\n<p>Wie gesagt, ich werde das Laravel-Dateisystem verwenden. Es erfordert die Konfiguration des S3-Treibers. Gehen Sie zu Ihrem Editor und \u00f6ffnen Sie die Datei <code>config\/filesystems.php<\/code>. In dieser Datei sehen Sie den f\u00fcr S3 definierten Treiber unter &#8218;disks&#8216;.<\/p>\n<p><strong>config\/filesystems.php<\/strong><\/p>\n<pre><code>&lt;?php\n\u00a0\nreturn [\n\u00a0\n\u00a0\u00a0\u00a0\u00a0.....\n\u00a0\n\u00a0\u00a0\u00a0\u00a0'disks' =&gt; [\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0.....\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0's3' =&gt; [\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'driver' =&gt; 's3',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'key' =&gt; env('AWS_ACCESS_KEY_ID'),\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'secret' =&gt; env('AWS_SECRET_ACCESS_KEY'),\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'region' =&gt; env('AWS_DEFAULT_REGION'),\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'bucket' =&gt; env('AWS_BUCKET'),\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'url' =&gt; env('AWS_URL'),\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'endpoint' =&gt; env('AWS_ENDPOINT'),\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0],\n\u00a0\n\u00a0\u00a0\u00a0\u00a0],\n];<\/code><\/pre>\n<p>Im obigen Code verwendet Laravel die Methode env(), um die Werte zu setzen. Das bedeutet, dass Sie diese Konstanten in Ihrer <code>.env<\/code>Datei definieren m\u00fcssen. Sie m\u00fcssen die Konstanten AWS_URL und AWS_ENDPOINT nicht definieren, da dies zum Hochladen von Dateien in den S3-Bucket nicht erforderlich ist.<\/p>\n<pre><code>AWS_ACCESS_KEY_ID=\nAWS_SECRET_ACCESS_KEY=\nAWS_DEFAULT_REGION=\nAWS_BUCKET=<\/code><\/pre>\n<p>Addieren Sie den Wert zu jeder der obigen Konstanten. \u00d6ffnen Sie als N\u00e4chstes das Terminal in Ihrem Projektstammverzeichnis und f\u00fchren Sie den Befehl aus:<\/p>\n<pre><code>composer require league\/flysystem-aws-s3-v3 ~1.0<\/code><\/pre>\n<p>Dieser Befehl installiert die erforderliche Bibliothek, die die AWS-API aufruft und die Cloud-Operationen ausf\u00fchrt.<\/p>\n<h3>Hochladen einer Datei auf S3 in Laravel<\/h3>\n<p>Wir haben alle mit der Grundkonfiguration eingestellt. Jetzt k\u00f6nnen wir mit dem eigentlichen Teil des Datei-Uploads beginnen. Lassen Sie uns ein einfaches Formular mit Dateieingabe und Senden-Schaltfl\u00e4che erstellen.<\/p>\n<p>F\u00fcgen Sie den folgenden Code in Ihre Blade-Datei ein.<\/p>\n<pre><code>&lt;form action=\"{{ url('ROUTE_URL') }}\" method=\"post\" enctype=\"multipart\/form-data\"&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;div class=\"form-group\"&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;label for=\"exampleInputFile\"&gt;File input&lt;\/label&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;input type=\"file\" name=\"profile_image\" id=\"exampleInputFile\"&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;\/div&gt;\n\u00a0\u00a0\u00a0\u00a0{{ csrf_field() }}\n\u00a0\u00a0\u00a0\u00a0&lt;button type=\"submit\" class=\"btn btn-default\"&gt;Submit&lt;\/button&gt;\n&lt;\/form&gt;<\/code><\/pre>\n<p>Ersetzen Sie den Platzhalter ROUTE_URL durch Ihre tats\u00e4chliche Route.<\/p>\n<p>Laravel gibt eine <code>Storage<\/code>Fassade, die fr\u00fcher mit den konfigurierten Festplatten interagierte. In unserem Fall ist die Festplatte S3. F\u00fcgen Sie <code>Storage<\/code>in der Steuerung Fassade wie folgt:<\/p>\n<pre><code>&lt;?php\n\u00a0\nnamespace AppHttpControllers;\n\u00a0\nuse IlluminateHttpRequest;\nuse IlluminateSupportFacadesStorage;\n...\n...<\/code><\/pre>\n<p>Nach dem Einbinden einer Fassade k\u00f6nnen Sie Dateien auf S3 hochladen. Schreiben Sie den folgenden Code in Ihre Methode, die die Datei auf S3 sendet.<\/p>\n<pre><code>&lt;?php\n...\n...\npublic function store(Request $request)\n{\n\u00a0\u00a0\u00a0\u00a0if($request-&gt;hasFile('profile_image')) {\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/get filename with extension\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$filenamewithextension = $request-&gt;file('profile_image')-&gt;getClientOriginalName();\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/get filename without extension\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$filename = pathinfo($filenamewithextension, PATHINFO_FILENAME);\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/get file extension\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$extension = $request-&gt;file('profile_image')-&gt;getClientOriginalExtension();\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/filename to store\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$filenametostore = $filename.'_'.time().'.'.$extension;\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/Upload File to s3\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Storage::disk('s3')-&gt;put($filenametostore, fopen($request-&gt;file('profile_image'), 'r+'), 'public');\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/Store $filenametostore in the database\n\u00a0\u00a0\u00a0\u00a0}\n}<\/code><\/pre>\n<p>Im obigen Code erzeuge ich einen eindeutigen Namen f\u00fcr die Datei und lade sie dann auf S3 hoch. Ein Benutzer sollte den Dateinamen zur sp\u00e4teren Verwendung in der Datenbank speichern. Beim Hochladen einer Datei auf S3 habe ich den dritten Parameter als &#8218;public&#8216; \u00fcbergeben. Wenn Sie die Datei nicht als &#8218;\u00f6ffentlich&#8216; festlegen m\u00f6chten, \u00fcberspringen Sie diesen Parameter.<\/p>\n<p>Der Benutzer kann die URL der hochgeladenen Datei mit dem folgenden Code abrufen:<\/p>\n<pre><code>$url = Storage::disk('s3')-&gt;url('YOUR_FILENAME_HERE');<\/code><\/pre>\n<p>Verwenden Sie zum L\u00f6schen einer Datei aus dem S3-Bucket die unten gezeigte L\u00f6schmethode.<\/p>\n<pre><code>Storage::disk('s3')-&gt;delete('YOUR_FILENAME_HERE');<\/code><\/pre>\n<p>Es dreht sich alles darum, wie Sie eine Datei mit dem Laravel-Dateisystem auf S3 hochladen. Ich hoffe, Sie haben das von Laravel bereitgestellte System f\u00fcr die Interaktion mit dem Amazon S3 kennengelernt. Bitte teilen Sie Ihre Gedanken und Vorschl\u00e4ge im Kommentarbereich unten mit.<\/p>\n<h3>Zum Thema passende Artikel<\/h3>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/de\/so-laden-und-komprimieren-sie-bilder-in-laravel\/\" title=\"Eine Anleitung zum Hochladen und Komprimieren von Bildern in Laravel\">Eine Anleitung zum Hochladen und Komprimieren von Bildern in Laravel<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/de\/so-erstellen-sie-ein-backup-der-laravel-anwendung\/\" title=\"So erstellen Sie ein Backup der Laravel-Anwendung\">So erstellen Sie ein Backup der Laravel-Anwendung<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/de\/backup-der-laravel-anwendung-auf-dropbox\/\" title=\"Backup der Laravel-Anwendung auf Dropbox\">Backup der Laravel-Anwendung auf Dropbox<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Aufnahmequelle:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>M\u00f6chten Sie wissen, wie Sie in Laravel eine Datei auf S3 hochladen? In diesem Artikel zeigen wir Ihnen eine Schritt-f\u00fcr-Schritt-Anleitung, die das Hochladen einer Datei auf Amazon S3 erkl\u00e4rt<\/p>\n","protected":false},"author":1,"featured_media":21654,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[496],"tags":[845],"class_list":["post-24917","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-laravel","tag-affiai-de"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/posts\/24917","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/comments?post=24917"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/posts\/24917\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/media\/21654"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/media?parent=24917"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/categories?post=24917"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/tags?post=24917"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}