'latest', 'region' => AWS_REGION, 'credentials' => [ 'key' => AWS_ACCESS_KEY_ID, 'secret' => AWS_SECRET_ACCESS_KEY, ], ]); } return self::$s3Client; } public static function uploadFile($filePath, $key, $bucket = null) { $bucket = $bucket ?: AWS_S3_BUCKET; $s3 = self::getS3Client(); try { $result = $s3->putObject([ 'Bucket' => $bucket, 'Key' => $key, 'SourceFile' => $filePath, 'ACL' => 'public-read', // Make file publicly readable ]); return $result['ObjectURL']; } catch (S3Exception $e) { // Handle exception error_log($e->getMessage()); return null; } } } ?>