Lataa tiedostot Amazon S3: een AWS PHP SDK: n avulla
Haluatko ladata tiedostoja Amazon S3: een ohjelmallisesti? Amazon S3 on pilvivarastopalvelu, johon voi tallentaa tiedostoja, kuvia jne. Nämä asiakirjat voivat olla julkisia tai yksityisiä omistajan valinnan mukaan. Tässä artikkelissa tutkitaan, miten tiedostoja lähetetään Amazon S3: een käyttämällä virallista AWS PHP SDK -kirjastoa.
Amazon S3 tarjoaa suuren skaalattavan kohteen tallennustilan. Kestävyytensä ja suorituskyvynsä vuoksi se on suosittu pilvipalvelu käyttäjien keskuudessa.
Miksi sinun on ladattava tiedostoja Amazon S3: een?
No, on useita syitä pitää tiedostosi Amazon S3: lla. Koska se on pilvipohjainen palvelu, voit käyttää tiedostojasi mistä tahansa. Tätä palvelua käyttäessään käyttäjät voivat pitää asiakirjansa luottamuksellisena. AWS tarjoaa sinulle ominaisuuden pitää asiakirjasi joko julkisena tai yksityisenä. Toiseksi, jos sinulla on verkkosivusto, tiedostojen pitäminen pilvessä säästää paljon kaistanleveyttä. Se säästää hosting-tilaa ja vähentää palvelimesi kuormitusta.
Tästä huolimatta katsotaanpa, kuinka ladata tiedostoja Amazon S3: een PHP: n avulla.
Hanki tietoturvatiedot
S3: n käytön aloittamiseksi sinulla on oltava tili AWS: ssä. Kun olet luonut AWS-tilin, muista aktivoida palvelu S3 seuraamalla heidän vahvistusprosessiaan.
Kun aktivoit S3-palvelun, hanki suojaustunnuksesi, jota tarvitsemme työskennellessäsi sovellusliittymien kanssa.
Koodi tiedostojen lataamiseen Amazon S3: een
Olemme valmiita AWS API -avaimilla. Asenna seuraavaksi virallinen AWS PHP SDK -kirjasto projektiisi. Suosittelen, että asennat tämän kirjaston Composerilla. Avaa pääte projektin juurihakemistossa ja suorita alla oleva komento.
composer require aws/aws-sdk-php
Tämä komento asentaa kirjaston ja niiden riippuvuudet projektiisi.
Luo ämpäri AWS: llä
AWS: ssä meidän on luotava ämpäri tiedostojemme tallentamiseksi. Ämpäri on vain looginen tallennusyksikkö AWS: ssä. Kaikki tiedostosi tallennetaan ämpäriin.
Voit luoda kauhan suoraan S3-kojelautaan. Mutta jos joku haluaa luoda sen dynaamisesti, katso alla olevaa koodia.
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();
}
Muista korvata paikkamerkit todellisilla arvoilla. Tämä koodi luo ryhmän S3-hallintapaneeliin. Lähetämme tiedostot tähän ryhmään API: n kautta.
Yllä olevassa koodissa läpäisin avaimen => arvoparin nimellä 'ACL' => 'public-read'
. Tämä pari asettaa kauhan tai tiedostojen julkisen käyttöoikeuden. Jos haluat pitää tallennustilan yksityisenä, poista tämä rivi koodista.
Seuraava työ on koodin kirjoittaminen tiedostojen lataamiseksi Amazon S3: een. Opetuksen vuoksi luon erilaisia PHP-tiedostoja ja kirjoitan niihin koodia. Sinun tapauksessasi voit toteuttaa logiikan projektisi kulusta riippuen.
Lähetä tiedosto Amazon S3: een
Olet valmis tallentamaan tiedostosi ämpäriin. Luo tiedosto upload-to-s3.php
ja aseta alla oleva koodi tähän tiedostoon.
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();
}
Tässä sinun tulisi määrittää $bucketName
muuttujan kauhan nimi. Minun tapauksessani lähetän tiedoston, jossa sanotaan "my-image.png", minkä polun asetin koodiin. Siksi sinun tulisi säätää tiedostojesi polkua. Lopuksi tulostan ladatun tiedoston polun get()
menetelmällä saatuun vastaukseen.
Valmista! Suorita nyt upload-to-s3.php
tiedosto selaimella ja tiedosto tulisi ladata Amazon S3 -säilöön.
Toivon ymmärtävänne kauhan luomisen ja tiedostojen lataamisen Amazon S3: een. Voit myös tarkistaa AWS: n GitHubissa tarjoamat esimerkkikoodit.