✅ Nowości, motywy, wtyczki WEB i WordPress. Tutaj dzielimy się wskazówkami i najlepszymi rozwiązaniami dla stron internetowych.

Prześlij pliki do Amazon S3 za pomocą AWS PHP SDK

43

Czy chcesz programowo przesyłać pliki do Amazon S3? Amazon S3 to usługa przechowywania w chmurze, w której można przechowywać pliki, obrazy itp. Dokumenty te mogą być publiczne lub prywatne, w zależności od wyboru właściciela. W tym artykule dowiemy się, jak przesyłać pliki do Amazon S3 za pomocą oficjalnej biblioteki AWS PHP SDK.

Amazon S3 zapewnia wysoce skalowalną obiektową pamięć masową. Ze względu na swoją solidność i wydajność jest popularną usługą w chmurze wśród użytkowników.

Dlaczego trzeba przesyłać pliki na Amazon S3?

Cóż, istnieje kilka powodów, dla których warto przechowywać swoje pliki w Amazon S3. Ponieważ jest to usługa oparta na chmurze, możesz uzyskać dostęp do swoich plików z dowolnego miejsca. Korzystając z tej usługi, użytkownicy mogą zachować poufność swoich dokumentów. AWS zapewnia funkcję, dzięki której Twój dokument będzie publiczny lub prywatny. Po drugie, jeśli prowadzisz witrynę internetową, przechowywanie plików w chmurze pozwoli Ci zaoszczędzić dużo przepustowości. Oszczędza miejsce na hostingu i zmniejsza obciążenie serwera.

Biorąc to pod uwagę, przyjrzyjmy się, jak przesyłać pliki na Amazon S3 za pomocą PHP.

Uzyskaj poświadczenia bezpieczeństwa

Aby rozpocząć korzystanie z S3, musisz mieć konto w AWS. Po utworzeniu konta AWS upewnij się, że aktywujesz usługę S3, postępując zgodnie z procesem ich weryfikacji.

Po aktywacji usługi S3 uzyskaj swoje dane uwierzytelniające, których będziemy potrzebować podczas pracy z API.

Prześlij pliki do Amazon S3 za pomocą AWS PHP SDK

Kod do przesyłania plików do Amazon S3

Jesteśmy gotowi z kluczami AWS API. Następnie zainstaluj w swoim projekcie oficjalną bibliotekę AWS PHP SDK. Do zainstalowania tej biblioteki polecam użyć Composera. Otwórz terminal w katalogu głównym projektu i uruchom poniższe polecenie.

composer require aws/aws-sdk-php

To polecenie zainstaluje bibliotekę z jej zależnościami w twoim projekcie.

Utwórz zasobnik w AWS

W AWS musimy stworzyć Bucket do przechowywania naszych plików. Wiadro to nic innego jak logiczna jednostka pamięci w AWS. Wszystkie Twoje pliki będą przechowywane w zasobniku.

Możesz utworzyć zasobnik bezpośrednio na pulpicie nawigacyjnym S3. Ale jeśli ktoś chce stworzyć go dynamicznie, zapoznaj się z poniższym kodem.

tworzenie-zasobnik.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();
}

Pamiętaj, aby zastąpić symbole zastępcze rzeczywistymi wartościami. Ten kod tworzy zasobnik na pulpicie nawigacyjnym S3. Prześlemy pliki z tego zasobnika za pośrednictwem interfejsu API.

W powyższym kodzie przekazałem parę klucz=>wartość jako 'ACL' => 'public-read'. Ta para zapewnia publiczny dostęp do Twojego zasobnika lub plików. Jeśli chcesz zachować prywatność swojej przestrzeni dyskowej, usuń tę linię z kodu.

Następnym zadaniem jest napisanie kodu do przesyłania plików na Amazon S3. Na potrzeby tutoriala tworzę różne pliki PHP i piszę w nich kod. W Twoim przypadku możesz zaimplementować logikę w zależności od przepływu projektu.

Prześlij plik do Amazon S3

Jesteś gotowy z kubełkiem do przechowywania plików. Utwórz plik upload-to-s3.phpi umieść w nim poniższy kod.

prześlij-do-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();
}

Tutaj należy przypisać nazwę zasobnika $bucketNamezmiennej. W moim przypadku przesyłam plik, który mówi „my-image.png", którą ścieżkę ustawiłem w kodzie. W związku z tym powinieneś dostosować ścieżkę swoich plików. Na koniec drukuję ścieżkę przesłanego pliku przy użyciu get()metody na otrzymanej odpowiedzi.

Wszystko gotowe! Teraz uruchom upload-to-s3.phpplik w przeglądarce, a Twój plik powinien zostać przesłany do zasobnika Amazon S3.

Mam nadzieję, że rozumiesz tworzenie zasobnika i przesyłanie plików do Amazon S3. Możesz również sprawdzić przykładowe kody dostarczone przez AWS w serwisie GitHub.

Powiązane artykuły

Źródło nagrywania: artisansweb.net

Ta strona korzysta z plików cookie, aby poprawić Twoje wrażenia. Zakładamy, że nie masz nic przeciwko, ale możesz zrezygnować, jeśli chcesz. Akceptuję Więcej szczegółów