Level 11
This is how I use Lumen upload to S3 and btw I am using League\Flysystem\Filesystem.
S3
use Aws\S3\S3Client;
use League\Flysystem\AwsS3v3\AwsS3Adapter;
use League\Flysystem\Filesystem;
class S3 {
public static function boot() {
$client = new S3Client([
'credentials' => [
'key' => getenv('S3_KEY'),
'secret' => getenv('S3_SECRET')
],
'region' => getenv('S3_REGION'),
'version' => 'latest',
]);
$adapter = new AwsS3Adapter($client, getenv('S3_BUCKET'));
$filesystem = new Filesystem($adapter);
return $filesystem;
}
}
The second argument must be encoded image string.
$cloud = S3::boot();
$cloud->put($photo->path, file_get_contents($this->file));
$cloud->put($photo->thumbnail_path, (new Thumbnail)->minimize($this->file->getRealPath()));