{"id":28815,"date":"2021-06-01T12:36:00","date_gmt":"2021-06-01T09:36:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=28815"},"modified":"2021-10-18T03:38:18","modified_gmt":"2021-10-18T00:38:18","slug":"przeslij-pliki-do-amazon-s3-za-pomoca-aws-php-sdk","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/pl\/przeslij-pliki-do-amazon-s3-za-pomoca-aws-php-sdk\/","title":{"rendered":"Prze\u015blij pliki do Amazon S3 za pomoc\u0105 AWS PHP SDK"},"content":{"rendered":"<p>Czy chcesz programowo przesy\u0142a\u0107 pliki do Amazon S3? Amazon S3 to us\u0142uga przechowywania w chmurze, w kt\u00f3rej mo\u017cna przechowywa\u0107 pliki, obrazy itp. Dokumenty te mog\u0105 by\u0107 publiczne lub prywatne, w zale\u017cno\u015bci od wyboru w\u0142a\u015bciciela. W tym artykule dowiemy si\u0119, jak przesy\u0142a\u0107 pliki do Amazon S3 za pomoc\u0105 oficjalnej biblioteki AWS PHP SDK.<\/p>\n<p>Amazon S3 zapewnia wysoce skalowaln\u0105 obiektow\u0105 pami\u0119\u0107 masow\u0105. Ze wzgl\u0119du na swoj\u0105 solidno\u015b\u0107 i wydajno\u015b\u0107 jest popularn\u0105 us\u0142ug\u0105 w chmurze w\u015br\u00f3d u\u017cytkownik\u00f3w.<\/p>\n<h3>Dlaczego trzeba przesy\u0142a\u0107 pliki na Amazon S3?<\/h3>\n<p>C\u00f3\u017c, istnieje kilka powod\u00f3w, dla kt\u00f3rych warto przechowywa\u0107 swoje pliki w Amazon S3. Poniewa\u017c jest to us\u0142uga oparta na chmurze, mo\u017cesz uzyska\u0107 dost\u0119p do swoich plik\u00f3w z dowolnego miejsca. Korzystaj\u0105c z tej us\u0142ugi, u\u017cytkownicy mog\u0105 zachowa\u0107 poufno\u015b\u0107 swoich dokument\u00f3w. AWS zapewnia funkcj\u0119, dzi\u0119ki kt\u00f3rej Tw\u00f3j dokument b\u0119dzie publiczny lub prywatny. Po drugie, je\u015bli prowadzisz witryn\u0119 internetow\u0105, przechowywanie plik\u00f3w w chmurze pozwoli Ci zaoszcz\u0119dzi\u0107 du\u017co przepustowo\u015bci. Oszcz\u0119dza miejsce na hostingu i zmniejsza obci\u0105\u017cenie serwera.<\/p>\n<p>Bior\u0105c to pod uwag\u0119, przyjrzyjmy si\u0119, jak przesy\u0142a\u0107 pliki na Amazon S3 za pomoc\u0105 PHP.<\/p>\n<h3>Uzyskaj po\u015bwiadczenia bezpiecze\u0144stwa<\/h3>\n<p>Aby rozpocz\u0105\u0107 korzystanie z S3, musisz mie\u0107 konto w <a href=\"https:\/\/aws.amazon.com\/s3\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">AWS<\/a>. Po utworzeniu konta AWS upewnij si\u0119, \u017ce aktywujesz us\u0142ug\u0119 S3, post\u0119puj\u0105c zgodnie z procesem ich weryfikacji.<\/p>\n<p>Po aktywacji us\u0142ugi S3 uzyskaj swoje dane uwierzytelniaj\u0105ce, kt\u00f3rych b\u0119dziemy potrzebowa\u0107 podczas pracy z API.<\/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=\"Prze\u015blij pliki do Amazon S3 za pomoc\u0105 AWS PHP SDK\" ><\/a><\/p>\n<h3>Kod do przesy\u0142ania plik\u00f3w do Amazon S3<\/h3>\n<p>Jeste\u015bmy gotowi z kluczami AWS API. Nast\u0119pnie zainstaluj w swoim projekcie oficjaln\u0105 bibliotek\u0119 <a href=\"https:\/\/github.com\/aws\/aws-sdk-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">AWS PHP SDK<\/a>. Do zainstalowania tej biblioteki polecam u\u017cy\u0107 <a href=\"https:\/\/getcomposer.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Composera<\/a>. Otw\u00f3rz terminal w katalogu g\u0142\u00f3wnym projektu i uruchom poni\u017csze polecenie.<\/p>\n<pre><code>composer require aws\/aws-sdk-php<\/code><\/pre>\n<p>To polecenie zainstaluje bibliotek\u0119 z jej zale\u017cno\u015bciami w twoim projekcie.<\/p>\n<h4>Utw\u00f3rz zasobnik w AWS<\/h4>\n<p>W AWS musimy stworzy\u0107 Bucket do przechowywania naszych plik\u00f3w. Wiadro to nic innego jak logiczna jednostka pami\u0119ci w AWS. Wszystkie Twoje pliki b\u0119d\u0105 przechowywane w zasobniku.<\/p>\n<p>Mo\u017cesz utworzy\u0107 zasobnik bezpo\u015brednio na pulpicie nawigacyjnym S3. Ale je\u015bli kto\u015b chce stworzy\u0107 go dynamicznie, zapoznaj si\u0119 z poni\u017cszym kodem.<\/p>\n<p><strong>tworzenie-zasobnik.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>Pami\u0119taj, aby zast\u0105pi\u0107 symbole zast\u0119pcze rzeczywistymi warto\u015bciami. Ten kod tworzy zasobnik na pulpicie nawigacyjnym S3. Prze\u015blemy pliki z tego zasobnika za po\u015brednictwem interfejsu API.<\/p>\n<p>W powy\u017cszym kodzie przekaza\u0142em par\u0119 klucz=&gt;warto\u015b\u0107 jako <code>'ACL' =&gt; 'public-read'<\/code>. Ta para zapewnia publiczny dost\u0119p do Twojego zasobnika lub plik\u00f3w. Je\u015bli chcesz zachowa\u0107 prywatno\u015b\u0107 swojej przestrzeni dyskowej, usu\u0144 t\u0119 lini\u0119 z kodu.<\/p>\n<p>Nast\u0119pnym zadaniem jest napisanie kodu do przesy\u0142ania plik\u00f3w na Amazon S3. Na potrzeby tutoriala tworz\u0119 r\u00f3\u017cne pliki PHP i pisz\u0119 w nich kod. W Twoim przypadku mo\u017cesz zaimplementowa\u0107 logik\u0119 w zale\u017cno\u015bci od przep\u0142ywu projektu.<\/p>\n<h4>Prze\u015blij plik do Amazon S3<\/h4>\n<p>Jeste\u015b gotowy z kube\u0142kiem do przechowywania plik\u00f3w. Utw\u00f3rz plik <code>upload-to-s3.php<\/code>i umie\u015b\u0107 w nim poni\u017cszy kod.<\/p>\n<p><strong>prze\u015blij-do-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>Tutaj nale\u017cy przypisa\u0107 nazw\u0119 zasobnika <code>$bucketName<\/code>zmiennej. W moim przypadku przesy\u0142am plik, kt\u00f3ry m\u00f3wi \u201emy-image.png&quot;, kt\u00f3r\u0105 \u015bcie\u017ck\u0119 ustawi\u0142em w kodzie. W zwi\u0105zku z tym powiniene\u015b dostosowa\u0107 \u015bcie\u017ck\u0119 swoich plik\u00f3w. Na koniec drukuj\u0119 \u015bcie\u017ck\u0119 przes\u0142anego pliku przy u\u017cyciu <code>get()<\/code>metody na otrzymanej odpowiedzi.<\/p>\n<p>Wszystko gotowe! Teraz uruchom <code>upload-to-s3.php<\/code>plik w przegl\u0105darce, a Tw\u00f3j plik powinien zosta\u0107 przes\u0142any do zasobnika Amazon S3.<\/p>\n<p>Mam nadziej\u0119, \u017ce rozumiesz tworzenie zasobnika i przesy\u0142anie plik\u00f3w do Amazon S3. Mo\u017cesz r\u00f3wnie\u017c sprawdzi\u0107 <a href=\"https:\/\/github.com\/awsdocs\/aws-doc-sdk-examples\/tree\/master\/php\/example_code\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">przyk\u0142adowe kody<\/a> dostarczone przez AWS w serwisie GitHub.<\/p>\n<h4>Powi\u0105zane artyku\u0142y<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/pl\/jak-przeslac-plik-do-s3-za-pomoca-systemu-plikow-laravel\/\" title=\"Jak przes\u0142a\u0107 plik do S3 za pomoc\u0105 systemu plik\u00f3w Laravel?\">Jak przes\u0142a\u0107 plik do S3 za pomoc\u0105 systemu plik\u00f3w Laravel?<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/pl\/jak-przeslac-obrazy-na-inny-serwer-przez-ftp-w-laravel\/\" title=\"Jak przes\u0142a\u0107 obrazy na inny serwer przez FTP w Laravel?\">Jak przes\u0142a\u0107 obrazy na inny serwer przez FTP w Laravel?<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/pl\/jak-zintegrowac-api-arkuszy-google-z-php\/\" title=\"Jak zintegrowa\u0107 API Arkuszy Google z PHP\">Jak zintegrowa\u0107 API Arkuszy Google z PHP<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">\u0179r\u00f3d\u0142o nagrywania:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>W tym samouczku pokazujemy przesy\u0142anie plik\u00f3w do Amazon S3 przy u\u017cyciu oficjalnej biblioteki AWS PHK SDK. Przechowywanie plik\u00f3w w chmurze pozwoli Ci zaoszcz\u0119dzi\u0107 a<\/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":[277],"tags":[847],"class_list":["post-28815","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-php-8","tag-affiai-pl"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/posts\/28815","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/comments?post=28815"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/posts\/28815\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/media\/21664"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/media?parent=28815"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/categories?post=28815"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/tags?post=28815"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}