* OSS.php
<?phpnamespace App\Helpers\Utils\Alibaba;use OSS\OssClient;// composer require aliyuncs/oss-sdk-php// @ref: /document_detail/31855.html?spm=5176.87240.400427.25.38a04614SOLza3// @ref: https://oss./overview// 因为语音识别服务,音频文件必须是在阿里云OSS对象存储空间, 所以音频文件要先传到阿里云OSS// /document_detail/90727.htmlclass OSS{/** @var OssClient */protected $client;const END_POINT = "oss-cn-";public function __construct(){$accessKeyId = config('constant.alibaba_access_key_id');$accessKeySecret = config('constant.alibaba_access_key_secret');$endpoint = "http://".self::END_POINT;$this->client = new OssClient($accessKeyId, $accessKeySecret, $endpoint);// 设置Socket层传输数据的超时时间,单位秒,默认5184000秒。$this->client->setTimeout(3600);// 设置建立连接的超时时间,单位秒,默认10秒。$this->client->setConnectTimeout(10);}public function upload(string $targetUri, string $srcPath, $bucket = "asr021") {// $this->client->createBucket($bucket);$content = file_get_contents($srcPath);$this->client->putObject($bucket, $targetUri, $content);// $listObjectInfo = $this->client->listObjects($bucket);// return $listObjectInfo->getObjectList();return $targetUri;}public function bucket(string $bucket) {$this->client->createBucket($bucket, OssClient::OSS_ACL_TYPE_PUBLIC_READ);return $this;}}
Usage:
use App\Helpers\Utils\Alibaba\NLSFileTrans;use App\Helpers\Utils\Alibaba\OSS; // path为待上传文件的真实路径, bucket为oss文件存储分组名$oss = new OSS();$filename = md5_file($path);$uri = sprintf("%s/%s.%s", date("Y-m-d", time()), $filename, $ext);$oss->bucket($bucket)->upload($uri, $path, $bucket);return "https://".$bucket.".".OSS::END_POINT."/".$uri;