July 28, 2018
Lumenでs3を扱いたく、https://github.com/aws/aws-sdk-php-laravel を使用してみました。
ただ結局Filesystemを使用してしまいまして、上のライブラリを利用しませんでしたが、一応記事として残しておきます。
composer require aws/aws-sdk-php-laravel
bootstrap/app.php に
$app->register(Aws\Laravel\AwsServiceProvider::class);
config/aws.php に以下のような内容で設定
<?php
use Aws\Laravel\AwsServiceProvider;
return [
    'credentials' => [
        'key'    => env('AWS_ACCESS_KEY_ID'),
        'secret' => env('AWS_SECRET_ACCESS_KEY'),
    ],
    'region' => env('AWS_REGION', 'us-east-1'),
    'version' => 'latest',
    'ua_append' => [
        'L5MOD/' . AwsServiceProvider::VERSION,
    ],
];
      準備としては以上です。
$this->s3 = app()->make('aws')->createClient('s3');
// バケット一覧
$results = $this->s3->listBuckets();
// アップロード
$results = $this->s3->putObject([
    'Key' => 'test/a/test.jpg',
    'Bucket' => env('AWS_BUCKET'),
    'SourceFile' => base_path() . '/tests/Data/480x640.jpg',
    'ACL' => 'public-read',
]);
// 削除
$result = $this->s3->deleteObjects([
    'Bucket'  => env('AWS_BUCKET'),
    'Delete' => [
        'Objects' => [
            ['Key' => 'test/a/test1.jpg'],
            ['Key' => 'test/a/test2.jpg'],
        ]
    ],
]);
      5 モック
$aws = Mockery::mock('Aws\Sdk');
$this->app->instance('aws', $aws);
      以上です。
Written by Ta Toshio who lives and works in Saitama, Japan .You should follow him on Twitter