{"id":25451,"date":"2021-06-01T12:15:00","date_gmt":"2021-06-01T09:15:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=25451"},"modified":"2021-10-18T03:06:39","modified_gmt":"2021-10-18T00:06:39","slug":"carica-file-su-amazon-s3-utilizzando-aws-php-sdk","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/it\/carica-file-su-amazon-s3-utilizzando-aws-php-sdk\/","title":{"rendered":"Carica file su Amazon S3 utilizzando AWS PHP SDK"},"content":{"rendered":"<p>Vuoi caricare file su Amazon S3 in modo programmatico? Amazon S3 \u00e8 un servizio di cloud storage in cui \u00e8 possibile archiviare file, immagini, ecc. Questi documenti possono essere pubblici o privati \u200b\u200ba seconda della scelta del proprietario. In questo articolo, studiamo come caricare file su Amazon S3 utilizzando la libreria AWS PHP SDK ufficiale.<\/p>\n<p>Amazon S3 fornisce storage di oggetti ad alta scalabilit\u00e0. A causa della sua robustezza e prestazioni, \u00e8 un servizio cloud popolare tra gli utenti.<\/p>\n<h3>Perch\u00e9 \u00e8 necessario caricare file su Amazon S3?<\/h3>\n<p>Bene, ci sono diversi motivi per conservare i tuoi file su Amazon S3. Poich\u00e9 si tratta di un servizio basato su cloud, puoi accedere ai tuoi file da qualsiasi luogo. Durante l&#8217;utilizzo di questo servizio, gli utenti possono mantenere riservati i propri documenti. AWS ti offre una funzionalit\u00e0 per mantenere il tuo documento pubblico o privato. In secondo luogo, se stai eseguendo un sito web, conservare i tuoi file sul cloud ti far\u00e0 risparmiare molta larghezza di banda. Risparmia il tuo spazio di hosting e riduce i carichi sul tuo server.<\/p>\n<p>Detto questo, diamo un&#8217;occhiata a come caricare file su Amazon S3 utilizzando PHP.<\/p>\n<h3>Ottieni le tue credenziali di sicurezza<\/h3>\n<p>Per iniziare con S3, dovresti avere un account su <a href=\"https:\/\/aws.amazon.com\/s3\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">AWS<\/a>. Dopo aver creato l&#8217;account AWS assicurati di attivare il servizio S3 seguendo il loro processo di verifica.<\/p>\n<p>Dopo aver attivato il servizio S3, ottieni le tue credenziali di sicurezza che ti verranno richieste mentre lavoriamo con le 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=\"Carica file su Amazon S3 utilizzando AWS PHP SDK\" ><\/a><\/p>\n<h3>Codice per il caricamento di file su Amazon S3<\/h3>\n<p>Siamo pronti con le chiavi API AWS. Successivamente, installa una libreria <a href=\"https:\/\/github.com\/aws\/aws-sdk-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">SDK PHP AWS<\/a> ufficiale nel tuo progetto. Consiglio di utilizzare <a href=\"https:\/\/getcomposer.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Composer<\/a> per installare questa libreria. Apri il terminale nella directory principale del tuo progetto ed esegui il comando seguente.<\/p>\n<pre><code>composer require aws\/aws-sdk-php<\/code><\/pre>\n<p>Questo comando installer\u00e0 la libreria con le relative dipendenze nel tuo progetto.<\/p>\n<h4>Crea un bucket su AWS<\/h4>\n<p>In AWS, dobbiamo creare un Bucket per archiviare i nostri file. Il bucket non \u00e8 altro che un&#8217;unit\u00e0 logica di storage in AWS. Tutti i tuoi file verranno archiviati all&#8217;interno del bucket.<\/p>\n<p>Puoi creare un bucket direttamente nella dashboard di S3. Ma se qualcuno sta cercando di crearlo dinamicamente, fare riferimento al codice seguente.<\/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>Assicurati di sostituire i segnaposto con i valori effettivi. Questo codice crea un bucket sulla dashboard di S3. Caricheremo i file in questo bucket tramite l&#8217;API.<\/p>\n<p>Nel codice sopra ho passato key=&gt;value pair come <code>'ACL' =&gt; 'public-read'<\/code>. Questa coppia imposta il tuo bucket o l&#8217;accesso ai file al pubblico. Se desideri mantenere privato il tuo spazio di archiviazione, rimuovi questa riga dal codice.<\/p>\n<p>Il prossimo lavoro \u00e8 scrivere il codice per caricare i file su Amazon S3. Per il tutorial, sto creando diversi file PHP e scrivendoci il codice. Nel tuo caso, sentiti libero di implementare la logica in base al flusso del tuo progetto.<\/p>\n<h4>Carica file su Amazon S3<\/h4>\n<p>Sei pronto con il secchio per archiviare i tuoi file. Crea un file <code>upload-to-s3.php<\/code>e inserisci il codice seguente in questo file.<\/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>Qui, dovresti assegnare il nome del bucket per la <code>$bucketName<\/code>variabile. Nel mio caso, sto caricando un file che dice &quot;my-image.png&quot; quale percorso ho impostato nel codice. Di conseguenza, dovresti regolare il percorso dei tuoi file. Infine, sto stampando il percorso di un file caricato utilizzando il <code>get()<\/code>metodo sulla risposta ricevuta.<\/p>\n<p>Tutto fatto! Ora esegui il <code>upload-to-s3.php<\/code>file sul browser e il tuo file dovrebbe essere caricato sul bucket Amazon S3.<\/p>\n<p>Spero che tu capisca come creare un bucket e caricare file su Amazon S3. Potresti anche voler controllare i <a href=\"https:\/\/github.com\/awsdocs\/aws-doc-sdk-examples\/tree\/master\/php\/example_code\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">codici di esempio<\/a> forniti da AWS su GitHub.<\/p>\n<h4>articoli Correlati<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/it\/come-caricare-file-su-s3-utilizzando-laravel-filesystem\/\" title=\"Come caricare file su S3 utilizzando Laravel Filesystem\">Come caricare file su S3 utilizzando Laravel Filesystem<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/it\/come-caricare-immagini-su-un-altro-server-tramite-ftp-in-laravel\/\" title=\"Come caricare immagini su un altro server tramite FTP in Laravel\">Come caricare immagini su un altro server tramite FTP in Laravel<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/it\/come-integrare-l-api-di-fogli-google-con-php\/\" title=\"Come integrare l&#039;API di Fogli Google con PHP\">Come integrare l&#8217;API di Fogli Google con PHP<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fonte di registrazione:  <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 questo tutorial, ti mostriamo il caricamento di file su Amazon S3 utilizzando la libreria SDK AWS PHK ufficiale. L&#8217;archiviazione di file sul cloud ti far\u00e0 risparmiare un<\/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":[276],"tags":[846],"class_list":["post-25451","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-php-7","tag-affiai-it"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/posts\/25451","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/comments?post=25451"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/posts\/25451\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/media\/21664"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/media?parent=25451"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/categories?post=25451"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/tags?post=25451"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}