Laadige failid Amazon S3-sse üles, kasutades AWS PHP SDK-d
Kas soovite faile Amazon S3-le programmiliselt üles laadida? Amazon S3 on pilvemäluteenus, kuhu saab salvestada faile, pilte jne. Need dokumendid võivad olla avalikud või privaatsed, sõltuvalt omaniku valikust. Selles artiklis uurime, kuidas faile Amazon S3-sse üles laadida, kasutades AWS PHP SDK ametlikku teeki.
Amazon S3 pakub suure skaalautuvusega objektide salvestusruumi. Tugevuse ja jõudluse tõttu on see kasutajate seas populaarne pilveteenus.
Miks peate Amazon S3-s faile üles laadima?
Teie failide Amazon S3-s hoidmiseks on mitu põhjust. Kuna see on pilvepõhine teenus, pääsete oma failidele juurde kõikjalt. Selle teenuse kasutamise ajal saavad kasutajad oma dokumente konfidentsiaalsena hoida. AWS pakub teile funktsiooni, et hoida oma dokument avalik või privaatne. Teiseks, kui teil on veebileht, hoiab faile pilves hoidmine palju ribalaiust. See säästab teie hostimisruumi ja vähendab teie serveri koormusi.
Nagu öeldud, vaatame, kuidas faile Amazon S3-le PHP abil üles laadida.
Hankige oma turvakirjad
S3-ga alustamiseks peaks teil olema AWS-is konto. Pärast AWS-konto loomist aktiveerige kindlasti teenus S3, järgides nende kinnitusprotsessi.
Kui aktiveerite teenuse S3, hankige oma turvamandaadid, mida me API-dega töötades vajame.
Kood failide üleslaadimiseks Amazon S3-sse
Oleme valmis AWS API võtmetega. Järgmisena installige oma projekti AWS PHP SDK ametlik teek. Selle teegi installimiseks soovitan kasutada Composerit. Avage terminal oma projekti juurkataloogis ja käivitage järgmine käsk.
composer require aws/aws-sdk-php
See käsk installib teegi koos nende sõltuvustega teie projekti.
Looge AWS-i kopp
AWS-is peame oma failide salvestamiseks looma kopa. Ämber pole muud kui AWS-i loogiline salvestusüksus. Kõik teie failid salvestatakse ämbrisse.
Saate luua ämbri otse S3 armatuurlauale. Kuid kui keegi soovib seda dünaamiliselt luua, siis vaadake allolevat koodi.
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();
}
Asendage kohatäited tegelike väärtustega. Selle koodiga luuakse teie S3 juhtpaneelil ämber. Laadime selle ämber alla kuuluvad failid üles API kaudu.
Ülaltoodud koodis läbisin võtme => väärtusepaari kui 'ACL' => 'public-read'
. See paar määrab teie ämbrile või failidele juurdepääsu avalikkusele. Kui soovite oma salvestusruumi privaatsena hoida, eemaldage see rida koodist.
Järgmine töö on Amazon S3-s failide üleslaadimiseks koodi kirjutamine. Õpetuse huvides koostan erinevaid PHP-faile ja kirjutan sinna koodi. Teie puhul rakendage julgelt loogikat, sõltuvalt teie projekti käigust.
Laadige fail Amazon S3-sse üles
Olete valmis failide salvestamiseks koos ämbriga. Looge fail upload-to-s3.php
ja asetage sellesse faili allolev kood.
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();
}
Siin peaksite määrama $bucketName
muutujale ämber nime. Minu puhul laadin üles faili, milles öeldakse ‘my-image.png’, mille tee koodis määrasin. Vastavalt sellele peaksite oma failide teed reguleerima. Lõpuks get()
printin saadud vastusele meetodi abil üleslaaditud faili tee .
Kõik tehtud! Nüüd käivitage upload-to-s3.php
fail brauseris ja teie fail tuleks üles laadida Amazon S3 ämbrisse.
Loodan, et mõistate kopa loomist ja failide üleslaadimist Amazon S3-sse. Samuti võite kontrollida näiteks koodid, mida AWS kohta GitHub.