因为开发软件中上传图片、文档等比较多,考虑使用云存储,选择了腾讯cos。开发步骤如下:
1、在根目录运行 composer require qcloud/cos-sdk-v5
2、在控制器中引用,参考文档使用 require '../vendor/autoload.php',引用不到,直接用use Qcloud\Cos\Client;参考腾讯cos说明如下代码:
// 获取表单上传文件 例如上传了001.jpg
$file = request()->file('image');
//dump($file->getinfo());
$cosClient = new Client(array('region' => 'ap-beijing',
'credentials'=> array(
'secretId' => 'A*******************',
'secretKey' => 'HN****************')));
//bucket的命名规则为{name}-{appid} ,此处填写的存储桶名称必须为此格式
$bucket = 'ximi-1251026743';
$key = 'gjxy'. "/" . md5(microtime()) . '.jpg';
$local_path = $file->getInfo()['tmp_name'];
try {
$result = $cosClient->putObject(array(
'Bucket' => $bucket,
'Key' => $key,
'Body' => fopen($local_path, 'rb')));
print_r($result['ObjectURL']);
} catch (\Exception $e) {
echo "$e";
}
}
key 代表存储到cos的路径
result 有很多返回值,objecturl是具体的引用网址,可以直接放入数据库中方便下次引用。
为了安全加入了防盗链,在bucket的防盗链中设置白名单 ,加入 *.example.com