AWS SDK for PHPを使ってS3に画像をアップロードする
タイトル通りなのですが、CakePHP3にAWS SDK for PHPをインストールし、それを使ってAWSのS3にインストールしようしています。
<?php
namespace App\Controller;
require('/var/www/html/imagine/src/vendor/autoload.php');
use App\Controller\AppController;
use Cake\ORM\TableRegistry;
use Aws;
use Aws\Common\Enum\Region;
use Aws\S3\S3Client;
use Aws\S3\Enum\CannedAcl;
use Aws\S3\Exception\S3Exception;
use Aws\S3\MultipartUploader;
use Aws\Exception\MultipartUploadException;
use Aws\S3\Model\MultipartUpload\UploadBuilder;
use Guzzle\Http\EntityBody;
class ImagesController extends AppController {
public function upload(){
$end_point_url = '*******';
$client = S3Client::factory(array(
'credentials' => array(
'key' => '******',
'secret' => '*****',
),
"region" => 'ap_northeast_1',
"version" => '2006-03-01',
'base_url' => "$end_point_url"
));
$tmpfile = "/var/www/html/test.jpg";
// バケット名
$bucket = "s3-bucket-imagine";
// アップロードファイル名
$key = "test1.jpg";
$uploader = new MultipartUploader($client, "$tmpfile", [
'bucket' => "$bucket",
'key' => "$key"
]);
//debug($uploader);
try {
$result = $uploader->upload();
echo "Upload complete: {$result['ObjectURL']}\n";
} catch (MultipartUploadException $e) {
echo $e->getMessage() . "\n"; //←!!!!!!!
}
}
}
?>
upload()でエラーが発生し、echo $e->getMessage()
で以下のような表示されます。
An exception occurred while initiating a multipart upload.
$uploader->upload()
でエラーが発生しているのは間違いないのですが、
現状そのエラーを解決することができません。
なにかありましたら、随時補足いたしますのでよろしくお願いいたします。