前提・実現したいこと
cakephp3でawsのs3にファイルをアップロードしたいのですが、アップされません。
log等を確認してもエラーは出ていないので解決策が分かりません。
関数の引数を変えてみたりもしたのですが、上手く動きません。
該当のソースコード
PHP
1 $data = $this->getRequest()->getData(); 2 3 $name = $data['image']['name']; 4 $extension = substr(strrchr($name, '.'), 1); 5 6 $tempFilePath = 'files' . DS . 'test' 7 8 $fileName = date("ymd_") . uniqid("") . "." . $extension; 9 $filePath = $tempFilePath . DS . $fileName; 10 11 $this->Aws->uploadS3($data['image']['tmp_name'], $filePath);
PHP
1 2 function uploadS3($source_path, $upload_path, $bucket_name = AWS_S3_FILE_UPLOAD_BUCKET_NAME) 3 { 4 5 $s3 = new S3Client([ 6 'profile' => 'xxxx-xxx', 7 'version' => 'latest', 8 'region' => 'ap-northeast-1', 9 ]); 10 11 $client = new StsClient([ 12 'profile' => 'xxxx-xxx', 13 'version' => 'latest', 14 'region' => 'ap-northeast-1', 15 ]); 16 17 $result = $client->getCallerIdentity([]); 18 19 try { 20 // Upload data. 21 $result = $s3->putObject([ 22 'Bucket' => $bucket_name, 23 'Key' => $upload_path, 24 'Body' => fopen($source_path, 'rb'), 25 'ACL' => 'bucket-owner-read', 26 'ContentType' => mime_content_type($source_path), 27 ]); 28 29 echo $result['ObjectURL'] . PHP_EOL; 30 } catch (S3Exception $e) { 31 echo $e->getMessage() . PHP_EOL; 32 } 33 }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。