{"id":25119,"date":"2021-06-01T12:23:00","date_gmt":"2021-06-01T09:23:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=25119"},"modified":"2021-10-18T02:35:18","modified_gmt":"2021-10-17T23:35:18","slug":"hochladen-von-dateien-auf-amazon-s3-mit-aws-php-sdk","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/de\/hochladen-von-dateien-auf-amazon-s3-mit-aws-php-sdk\/","title":{"rendered":"Hochladen von Dateien auf Amazon S3 mit AWS PHP SDK"},"content":{"rendered":"<p>M\u00f6chten Sie Dateien programmgesteuert in Amazon S3 hochladen? Amazon S3 ist ein Cloud-Speicherdienst, in dem Dateien, Bilder usw. gespeichert werden k\u00f6nnen. Diese Dokumente k\u00f6nnen je nach Wahl des Eigent\u00fcmers \u00f6ffentlich oder privat sein. In diesem Artikel untersuchen wir, wie Sie mithilfe der offiziellen AWS PHP SDK-Bibliothek Dateien in Amazon S3 hochladen.<\/p>\n<p>Amazon S3 bietet hochskalierbaren Objektspeicher. Aufgrund seiner Robustheit und Leistung ist es ein beliebter Cloud-Dienst bei Benutzern.<\/p>\n<h3>Warum m\u00fcssen Sie Dateien auf Amazon S3 hochladen?<\/h3>\n<p>Nun, es gibt mehrere Gr\u00fcnde, Ihre Dateien auf Amazon S3 zu speichern. Da es sich um einen Cloud-basierten Dienst handelt, k\u00f6nnen Sie von \u00fcberall auf Ihre Dateien zugreifen. W\u00e4hrend der Nutzung dieses Dienstes k\u00f6nnen Benutzer ihre Dokumente vertraulich behandeln. AWS bietet Ihnen eine Funktion, mit der Sie Ihr Dokument entweder \u00f6ffentlich oder privat halten k\u00f6nnen. Zweitens, wenn Sie eine Website betreiben, sparen Sie viel Bandbreite, wenn Sie Ihre Dateien in der Cloud aufbewahren. Es spart Ihren Hosting-Speicherplatz und reduziert die Belastung Ihres Servers.<\/p>\n<p>Sehen wir uns jedoch an, wie Sie Dateien mit PHP auf Amazon S3 hochladen.<\/p>\n<h3>Holen Sie sich Ihre 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\">AWS haben<\/a>. Stellen Sie nach dem Erstellen des AWS-Kontos sicher, dass Sie den Service S3 aktivieren, indem Sie dem Verifizierungsprozess folgen.<\/p>\n<p>Rufen Sie nach der Aktivierung des S3-Dienstes Ihre Sicherheitsanmeldeinformationen ab, die wir f\u00fcr die Arbeit mit den APIs ben\u00f6tigen.<\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20389-6081ea50ea555.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-20389-6081ea50ea555.png\" alt=\"Hochladen von Dateien auf Amazon S3 mit AWS PHP SDK\" ><\/a><\/p>\n<h3>Code zum Hochladen von Dateien auf Amazon S3<\/h3>\n<p>Wir sind bereit mit AWS-API-Schl\u00fcsseln. Installieren Sie als N\u00e4chstes eine offizielle <a href=\"https:\/\/github.com\/aws\/aws-sdk-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">AWS PHP SDK-<\/a> Bibliothek in Ihrem Projekt. Ich empfehle, <a href=\"https:\/\/getcomposer.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Composer<\/a> zu verwenden, um diese Bibliothek zu installieren. \u00d6ffnen Sie das Terminal in Ihrem Projektstammverzeichnis und f\u00fchren Sie den folgenden Befehl aus.<\/p>\n<pre><code>composer require aws\/aws-sdk-php<\/code><\/pre>\n<p>Dieser Befehl installiert die Bibliothek mit ihren Abh\u00e4ngigkeiten in Ihrem Projekt.<\/p>\n<h4>Erstellen Sie einen Bucket in AWS<\/h4>\n<p>In AWS m\u00fcssen wir einen Bucket erstellen, um unsere Dateien zu speichern. Der Bucket ist nichts anderes als eine logische Speichereinheit in AWS. Alle Ihre Dateien werden im Bucket gespeichert.<\/p>\n<p>Sie k\u00f6nnen einen Bucket direkt im S3-Dashboard erstellen. Wenn jemand es jedoch dynamisch erstellen m\u00f6chte, lesen Sie den folgenden Code.<\/p>\n<p><strong>create-bucket.php<\/strong><\/p>\n<pre><code>&lt;?php\nrequire 'vendor\/autoload.php';\nuse AwsS3S3Client;\n\u00a0\n$bucketName = 'YOUR_BUCKET_NAME';\n\u00a0\n$client = new S3Client([\n\u00a0\u00a0\u00a0\u00a0'version' =&gt; 'latest',\n\u00a0\u00a0\u00a0\u00a0'region' =&gt; 'YOUR_AWS_REGION',\n\u00a0\u00a0\u00a0\u00a0'credentials' =&gt; [\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'key'\u00a0\u00a0\u00a0 =&gt; 'ACCESS_KEY_ID',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'secret' =&gt; 'SECRET_ACCESS_KEY'\n\u00a0\u00a0\u00a0\u00a0]\n]);\n\u00a0\ntry {\n\u00a0\u00a0\u00a0\u00a0$result = $client-&gt;createBucket([\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'Bucket' =&gt; $bucketName, \/\/ REQUIRED\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'ACL'\u00a0\u00a0\u00a0 =&gt; 'public-read',\n\u00a0\u00a0\u00a0\u00a0]);\n\u00a0\u00a0\u00a0\u00a0echo \"Bucket created successfully.\";\n} catch (AwsS3ExceptionS3Exception $e) {\n\u00a0\u00a0\u00a0\u00a0\/\/ output error message if fails\n\u00a0\u00a0\u00a0\u00a0echo $e-&gt;getMessage();\n}<\/code><\/pre>\n<p>Stellen Sie sicher, dass Sie die Platzhalter durch die tats\u00e4chlichen Werte ersetzen. Dieser Code erstellt einen Bucket in Ihrem S3-Dashboard. Wir werden die Dateien unter diesem Bucket \u00fcber die API hochladen.<\/p>\n<p>Im obigen Code habe ich key=&gt;value pair als <code>'ACL' =&gt; 'public-read'<\/code>. Dieses Paar legt Ihren Bucket- oder Dateizugriff f\u00fcr die \u00d6ffentlichkeit fest. Wenn Sie Ihren Speicher privat halten m\u00f6chten, entfernen Sie diese Zeile aus dem Code.<\/p>\n<p>Der n\u00e4chste Job ist das Schreiben von Code zum Hochladen von Dateien auf Amazon S3. F\u00fcr das Tutorial erstelle ich verschiedene PHP-Dateien und schreibe Code darin. In Ihrem Fall k\u00f6nnen Sie die Logik in Abh\u00e4ngigkeit von Ihrem Projektablauf implementieren.<\/p>\n<h4>Datei auf Amazon S3 hochladen<\/h4>\n<p>Sie sind mit dem Bucket bereit, um Ihre Dateien zu speichern. Erstellen Sie eine Datei <code>upload-to-s3.php<\/code>und f\u00fcgen Sie den folgenden Code in diese Datei ein.<\/p>\n<p><strong>upload-to-s3.php<\/strong><\/p>\n<pre><code>&lt;?php\nrequire 'vendor\/autoload.php';\n\u00a0\nuse AwsS3S3Client;\n\u00a0\n\/\/ Instantiate an Amazon S3 client.\n$s3 = new S3Client([\n\u00a0\u00a0\u00a0\u00a0'version' =&gt; 'latest',\n\u00a0\u00a0\u00a0\u00a0'region'\u00a0 =&gt; 'YOUR_AWS_REGION',\n\u00a0\u00a0\u00a0\u00a0'credentials' =&gt; [\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'key'\u00a0\u00a0\u00a0 =&gt; 'ACCESS_KEY_ID',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'secret' =&gt; 'SECRET_ACCESS_KEY'\n\u00a0\u00a0\u00a0\u00a0]\n]);\n\u00a0\n\u00a0\n$bucketName = 'YOUR_BUCKET_NAME';\n$file_Path = __DIR__. '\/my-image.png';\n$key = basename($file_Path);\n\u00a0\n\/\/ Upload a publicly accessible file. The file size and type are determined by the SDK.\ntry {\n\u00a0\u00a0\u00a0\u00a0$result = $s3-&gt;putObject([\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'Bucket' =&gt; $bucketName,\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'Key'\u00a0\u00a0\u00a0 =&gt; $key,\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'Body'\u00a0\u00a0 =&gt; fopen($file_Path, 'r'),\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'ACL'\u00a0\u00a0\u00a0 =&gt; 'public-read',\n\u00a0\u00a0\u00a0\u00a0]);\n\u00a0\u00a0\u00a0\u00a0echo \"Image uploaded successfully. Image path is: \". $result-&gt;get('ObjectURL');\n} catch (AwsS3ExceptionS3Exception $e) {\n\u00a0\u00a0\u00a0\u00a0echo \"There was an error uploading the file.n\";\n\u00a0\u00a0\u00a0\u00a0echo $e-&gt;getMessage();\n}<\/code><\/pre>\n<p>Hier sollten Sie den Namen des Buckets f\u00fcr die <code>$bucketName<\/code>Variable vergeben. In meinem Fall lade ich eine Datei mit der Aufschrift &#8218;my-image.png&#8216; hoch, deren Pfad ich im Code festgelegt habe. Dementsprechend sollten Sie den Pfad Ihrer Dateien anpassen. Schlie\u00dflich drucke ich den Pfad einer hochgeladenen Datei mit <code>get()<\/code>Methode auf die empfangene Antwort.<\/p>\n<p>Alles erledigt! F\u00fchren Sie nun die <code>upload-to-s3.php<\/code>Datei im Browser aus und Ihre Datei sollte in den Amazon S3-Bucket hochgeladen werden.<\/p>\n<p>Ich hoffe, Sie verstehen das Erstellen eines Buckets und das Hochladen von Dateien in Amazon S3. Sie k\u00f6nnen auch die von AWS auf GitHub bereitgestellten <a href=\"https:\/\/github.com\/awsdocs\/aws-doc-sdk-examples\/tree\/master\/php\/example_code\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Beispielcodes<\/a> \u00fcberpr\u00fcfen .<\/p>\n<h4>Zum Thema passende Artikel<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/de\/so-laden-sie-eine-datei-mit-dem-laravel-dateisystem-auf-s3-hoch\/\" title=\"So laden Sie eine Datei mit dem Laravel-Dateisystem auf S3 hoch\">So laden Sie eine Datei mit dem Laravel-Dateisystem auf S3 hoch<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/de\/so-laden-sie-bilder-ueber-ftp-in-laravel-auf-einen-anderen-server-hoch\/\" title=\"So laden Sie Bilder \u00fcber FTP in Laravel auf einen anderen Server hoch\">So laden Sie Bilder \u00fcber FTP in Laravel auf einen anderen Server hoch<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/de\/so-integrieren-sie-die-google-sheets-api-mit-php\/\" title=\"So integrieren Sie die Google Sheets-API mit PHP\">So integrieren Sie die Google Sheets-API mit PHP<\/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>In diesem Tutorial zeigen wir Ihnen, wie Sie Dateien mit der offiziellen AWS PHK SDK-Bibliothek in Amazon S3 hochladen. Das Speichern von Dateien in der Cloud spart Ihnen ein<\/p>\n","protected":false},"author":1,"featured_media":21664,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[272],"tags":[845],"class_list":["post-25119","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-php-3","tag-affiai-de"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/posts\/25119","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=25119"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/posts\/25119\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/media\/21664"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/media?parent=25119"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/categories?post=25119"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/tags?post=25119"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}