s3Client->putObject([ 'Bucket' => $bucket, 'Key' => $key, 'SourceFile' => $filePath, ]); return $result['ObjectURL']?? null; } public function downloadFile($bucket, $key, $downloadPath) { $result = $this->s3Client->getObject([ 'Bucket' => $bucket, 'Key' => $key, ]); if ($result['ContentLength'] > 0) { file_put_contents($downloadPath, $result['Body']); } return true; } public function deleteFile($bucket, $key) { $this->s3Client->deleteObject([ 'Bucket' => $bucket, 'Key' => $key, ]); return true; } }