<?php
use Aws\S3\S3Client; use Model\Main\Config\DbModel;
class AwsOss { const IMG = 1; const MP4_VIDEO = 2;
public static function getUrlBase64(string $url, int $fileType) { $config = DbModel::formatDbConfig(AwsOss::AWS_OSS_PUBLIC_TAG);
return self::getKycBase64File($url, $config, $fileType); }
private static function getKycBase64File($url, array $config, $fileType = self::IMG) { $bucket = $config['bucket']; $sdKParams = $config['sdk_params'];
$fileKey = trim(parse_url($url)['path'], '/');
$s3Client = new S3Client($sdKParams); $result = $s3Client->getObject(['Bucket' => $bucket, 'Key' => $fileKey]);
$fileSourceObj = $result['Body'] ?? ""; if ('' === $fileSourceObj) { throw new \Exception('文件资源拉取失败'); }
if ($fileType == 1) { $type = getimagesizefromstring($fileSourceObj)['mime']; } else { $type = 'audio/mp4'; }
return 'data:' . $type . ';base64,' . chunk_split(base64_encode($fileSourceObj)); }
}
|