✅ Notizie, temi, plugin WEB e WordPress. Qui condividiamo suggerimenti e le migliori soluzioni per siti web.

Carica file su Amazon S3 utilizzando AWS PHP SDK

37

Vuoi caricare file su Amazon S3 in modo programmatico? Amazon S3 è un servizio di cloud storage in cui è possibile archiviare file, immagini, ecc. Questi documenti possono essere pubblici o privati ​​a seconda della scelta del proprietario. In questo articolo, studiamo come caricare file su Amazon S3 utilizzando la libreria AWS PHP SDK ufficiale.

Amazon S3 fornisce storage di oggetti ad alta scalabilità. A causa della sua robustezza e prestazioni, è un servizio cloud popolare tra gli utenti.

Perché è necessario caricare file su Amazon S3?

Bene, ci sono diversi motivi per conservare i tuoi file su Amazon S3. Poiché si tratta di un servizio basato su cloud, puoi accedere ai tuoi file da qualsiasi luogo. Durante l’utilizzo di questo servizio, gli utenti possono mantenere riservati i propri documenti. AWS ti offre una funzionalità 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à risparmiare molta larghezza di banda. Risparmia il tuo spazio di hosting e riduce i carichi sul tuo server.

Detto questo, diamo un’occhiata a come caricare file su Amazon S3 utilizzando PHP.

Ottieni le tue credenziali di sicurezza

Per iniziare con S3, dovresti avere un account su AWS. Dopo aver creato l’account AWS assicurati di attivare il servizio S3 seguendo il loro processo di verifica.

Dopo aver attivato il servizio S3, ottieni le tue credenziali di sicurezza che ti verranno richieste mentre lavoriamo con le API.

Carica file su Amazon S3 utilizzando AWS PHP SDK

Codice per il caricamento di file su Amazon S3

Siamo pronti con le chiavi API AWS. Successivamente, installa una libreria SDK PHP AWS ufficiale nel tuo progetto. Consiglio di utilizzare Composer per installare questa libreria. Apri il terminale nella directory principale del tuo progetto ed esegui il comando seguente.

composer require aws/aws-sdk-php

Questo comando installerà la libreria con le relative dipendenze nel tuo progetto.

Crea un bucket su AWS

In AWS, dobbiamo creare un Bucket per archiviare i nostri file. Il bucket non è altro che un’unità logica di storage in AWS. Tutti i tuoi file verranno archiviati all’interno del bucket.

Puoi creare un bucket direttamente nella dashboard di S3. Ma se qualcuno sta cercando di crearlo dinamicamente, fare riferimento al codice seguente.

create-bucket.php

<?php
require 'vendor/autoload.php';
use AwsS3S3Client;
 
$bucketName = 'YOUR_BUCKET_NAME';
 
$client = new S3Client([
    'version' => 'latest',
    'region' => 'YOUR_AWS_REGION',
    'credentials' => [
        'key'    => 'ACCESS_KEY_ID',
        'secret' => 'SECRET_ACCESS_KEY'
    ]
]);
 
try {
    $result = $client->createBucket([
        'Bucket' => $bucketName, // REQUIRED
        'ACL'    => 'public-read',
    ]);
    echo "Bucket created successfully.";
} catch (AwsS3ExceptionS3Exception $e) {
    // output error message if fails
    echo $e->getMessage();
}

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’API.

Nel codice sopra ho passato key=>value pair come 'ACL' => 'public-read'. Questa coppia imposta il tuo bucket o l’accesso ai file al pubblico. Se desideri mantenere privato il tuo spazio di archiviazione, rimuovi questa riga dal codice.

Il prossimo lavoro è 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.

Carica file su Amazon S3

Sei pronto con il secchio per archiviare i tuoi file. Crea un file upload-to-s3.phpe inserisci il codice seguente in questo file.

upload-to-s3.php

<?php
require 'vendor/autoload.php';
 
use AwsS3S3Client;
 
// Instantiate an Amazon S3 client.
$s3 = new S3Client([
    'version' => 'latest',
    'region'  => 'YOUR_AWS_REGION',
    'credentials' => [
        'key'    => 'ACCESS_KEY_ID',
        'secret' => 'SECRET_ACCESS_KEY'
    ]
]);
 
 
$bucketName = 'YOUR_BUCKET_NAME';
$file_Path = __DIR__. '/my-image.png';
$key = basename($file_Path);
 
// Upload a publicly accessible file. The file size and type are determined by the SDK.
try {
    $result = $s3->putObject([
        'Bucket' => $bucketName,
        'Key'    => $key,
        'Body'   => fopen($file_Path, 'r'),
        'ACL'    => 'public-read',
    ]);
    echo "Image uploaded successfully. Image path is: ". $result->get('ObjectURL');
} catch (AwsS3ExceptionS3Exception $e) {
    echo "There was an error uploading the file.n";
    echo $e->getMessage();
}

Qui, dovresti assegnare il nome del bucket per la $bucketNamevariabile. Nel mio caso, sto caricando un file che dice "my-image.png" 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 get()metodo sulla risposta ricevuta.

Tutto fatto! Ora esegui il upload-to-s3.phpfile sul browser e il tuo file dovrebbe essere caricato sul bucket Amazon S3.

Spero che tu capisca come creare un bucket e caricare file su Amazon S3. Potresti anche voler controllare i codici di esempio forniti da AWS su GitHub.

articoli Correlati

Fonte di registrazione: artisansweb.net

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More