Thinkphp6---上传图片至阿里云OSS
在做项目的时候,以往的开发模式都是把图片直接存在项目服务器里面,但是这种存放就会导致系统非常大,特别是附件目录,然后如果项目进行迁移或者备份的时候就会导致很大,而且访问量大还会导致服务器IO变大,然后加载还慢,导致服务器性能大大折扣,使用OSS对象存储就能很好解决这个问题,而且还可以做缓存,以及CDN加速等等。
简单示例:
composer require aliyuncs/oss-sdk-php
创建一个文件夹,然后使用 composer 下载:

我们只需要 OSS 目录,然后将其放到拓展里面 extends 里面:好处是可控,不直接放到vender里面,项目里加载也可以直接在项目目录里面引入这个包

然后就是很简单的代码了:
use OSS\OssClient;
具体代码:
public function upload() { // 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录RAM控制台创建RAM账号。 $accessKeyId = "LTAIkXQ422HE57dD"; $accessKeySecret = "I0xtX8b2hhNTpHVoN8zRRE8H2KfUn0"; // Endpoint以杭州为例,其它Region请按实际情况填写。 $endpoint = "http://oss-cn-beijing.aliyuncs.com"; // 设置存储空间名称。 $bucket= "qing0707"; // 设置文件名称。 $object = time(); // <yourLocalFile>由本地文件路径加文件名包括后缀组成,例如/users/local/myfile.txt。 $filePath = 'D:\upupw\vhosts\qj.fyz.com\public\static\images\logo.png'; try{ $ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint); // 上传 $ossClient->uploadFile($bucket, $object, $filePath); // 如果Bucket是私有的,您需要生成一个带签名的URL // $url = $ossClient->signUrl($bucket, $object, 3600); // 1小时后过期 // 输出访问URL echo "文件上传成功,访问URL: " . $url . "\n"; // 删除临时文件 // @unlink($filePath); } catch(OssException $e) { printf(__FUNCTION__ . ": FAILED\n"); printf($e->getMessage() . "\n"); return; } print(__FUNCTION__ . ": OK" . "\n"); }
打完收工!

浙公网安备 33010602011771号