腾讯云 qcloud/cos-sdk-v5 上传图片怎么获得可以访问的图片地址
$cosClient = new \Qcloud\Cos\Client([
'region' => 'tj', // 华北-tj | 华南->gz | 华中->sh
'credentials' => [
'appId' => env('COS_APPID'),
'secretId' => env('COS_SECRETID'),
'secretKey' => env('COS_SECRETKEY')
]
]);
$result = $cosClient->putObject([
'Bucket' => 'img-'.env('COS_APPID'), // 存储桶-appid
'Key' => $fileName, // 键名==文件名
'Body' => fopen($realPath, 'rb'), // 图片
]);
打印
[ETag] => "56b3a7ec5e93351b79a8cbf6770dc08c"
[ServerSideEncryption] => AES256
[RequestId] => NWVkNjNiMWFfMjNiMjM1MGFfNjkyNF9jNGUzZDU=
[Key] => chat_img/20200602/20200602074218-490.jpg
[Bucket] => img-1251411943
[Location] => img-1251411943.cos.ap-beijing-1.myqcloud.com/chat_img/20200602/20200602074218-490.jpg
Location
这个地址不能访问,需要获得 URL 插入数据库 显示图片
看你这图片返回
You are denied by bucket referer rule
,看看存储桶的规则配置,还有防盗链的设置。我个人的做法是用 七牛云配置里的空间域名 拼接上 图片名和后缀. 例如 http://pic.xxx.cn/图片名.jpg. 注意 七牛云的空间 域名 设置. 还有七牛云应该是没有返回空间域名的, 因为 本身自己上传图片时就需要把空间域名带上.这是个人想法和实战经验,不喜勿喷
img-1251411943.cos.ap-beijing-1.myq...
把防盗链关下 或者 设置下
Laravel 如果用第三方OSS,你的存储桶默认要是公开的。