$ composer require aws/aws-sdk-php
require_once "vendor/autoload.php"; $bucket = ''; $key = ''; $secret = ''; $s3client = new Aws\S3\S3Client([ 'credentials' => [ 'key' => $key, 'secret' => $secret, ], 'region' => 'ap-northeast-1', 'version' => 'latest', ]); $file = "img/flower.jpg"; $result = $s3client->putObject(array( 'Bucket' => $bucket, 'Key' => 'test/flower.jpg', 'ACL' => 'public-read', 'SourceFile' => $file, 'ContentType' => mime_content_type($file), )); echo "<pre>"; var_dump($result); echo "</pre>";
これをファイル複数一括で行いたい。
複数ファイルの取得はglobだったかな。
foreach(glob("img/*.*") as $file) { $files[] = $file; } $s3client = new Aws\S3\S3Client([ 'credentials' => [ 'key' => $key, 'secret' => $secret, ], 'region' => 'ap-northeast-1', 'version' => 'latest', ]); foreach($files as $file){ $result[] = $s3client->putObject(array( 'Bucket' => $bucket, 'Key' => $file, 'ACL' => 'public-read', 'SourceFile' => $file, 'ContentType' => mime_content_type($file), )); } echo "<pre>"; var_dump($result); echo "</pre>";
ちょっと時間かかるな。手動でやった方が良さげ。