13/06/2018 - PHP, SYMFONY
Symfony uygulamalarında AWS SDK for PHP kütüphanesini kullanarak AWS S3 kovalarından dosya indirmek isterseniz, aşağıdaki örneği kullanabilirsiniz. Biz bu örnekte bir imaj dosyası indireceğiz. Daha fazla bilgi için Get an Object Using the AWS SDK for PHP sayfasını okuyun.
# User: These credentials belong to "AmazonS3FullAccess" user.
AWS_KEY=AMAZON000KEY
AWS_SECRET=AMAZON000SECRET
AWS_IMAGE_BUCKET=my-images-bucket
parameters:
# AWS SDK
aws_sdk:
version: 'latest'
region: 'eu-west-2'
credentials:
key: '%env(AWS_KEY)%'
secret: '%env(AWS_SECRET)%'
services:
_defaults:
autowire: true
autoconfigure: true
public: false
...
Aws\Sdk:
arguments:
- '%aws_sdk%'
declare(strict_types=1);
namespace App\Util\Aws;
use Aws\Sdk;
abstract class AwsUtil
{
protected $sdk;
public function __construct(Sdk $sdk)
{
$this->sdk = $sdk;
}
}
declare(strict_types=1);
namespace App\Util\Aws;
use App\Exception\AwsUtilException;
use Aws\S3\Exception\S3Exception;
use GuzzleHttp\Psr7\Stream;
class AwsS3Util extends AwsUtil
{
public function getObject(string $bucket, string $key): Stream
{
try {
$result = $this->sdk->createS3()->getObject(['Bucket' => $bucket, 'Key' => $key]);
return $result['Body'];
} catch (S3Exception $e) {
throw new AwsUtilException($e->getMessage());
}
}
}
Resim URL'sinin bunlar gibi bir şey olduğunu varsayalım: https://s3.eu-west-2.amazonaws.com/my-images-bucket/images/in/an/zz/zz/1234567890qwerty.jpg
veya https://myimages.amazonaws.com/my-images-bucket/images/in/an/zz/zz/1234567890qwerty.jpg
. Resmi indirmek için aşağıdaki kodu kullanın.
AwsS3Util->getObject('my-images-bucket', 'images/in/an/zz/zz/1234567890qwerty.jpg');