阿里OSS中创建Bucket:xxxxoss-test

阿里云OSS php 自定义域名 绑定bucket 访问正常,但是上传出现错误_自定义

对应的Bucket 域名:xxxoss-test.oss-cn-shenzhen.aliyuncs.com

阿里云OSS php 自定义域名 绑定bucket 访问正常,但是上传出现错误_上传_02

 所以OSS默认的访问网址是:​​http://xxxoss-test.oss-cn-shenzhen.aliyuncs.com/oss/20210807/86895153fb5c625aefe6cfb50ed2ef99.png​

但是想换成我们自己域名的:​​http://img.xxx.com/oss/20210807/86895153fb5c625aefe6cfb50ed2ef99.png​

都配置好后,图片访问都正常,但是发现在上传的时候出错了

解决办法:

做OSS图片上传时,可以采用阿里云分配的oss域名,也可以使用自定义域名(绑定用户域名),使用阿里云域名太长,不美观,我使用的绑定用户域名。使用阿里云分配域名时图片文件可以正常上传,使用自定义绑定用户域名时发现报错.

"\"绑定用户域名\"bucket name is invalid"

错误大概意思是绑定的用户域名没有关联到bucket上,在查看阿里云oss文档时发现还需要使用CNAME,使用CNAME绑定到域名域名

阿里云OSS php 自定义域名 绑定bucket 访问正常,但是上传出现错误_上传文件_03

OSS文档地址:​​https://help.aliyun.com/document_detail/32100.html?spm=a2c4g.11186623.6.1055.181165d3LkhGyq​​ PHP上传代码处理逻辑

 public function upload()
{

// 获取上传文件表单字段名
$fileKey = array_keys(request()->file());

//获取表单上传文件
$file = request()->file($fileKey['0']);
$resResult = Image::open($file);

try {
$config = Config::get('aliyun_oss'); //获取Oss的配置

//实例化对象 将配置传入
$ossClient = new OssClient($config['KeyId'], $config['KeySecret'], $config['Endpoint'],true);
//这里是有sha1加密 生成文件名 之后连接上后缀
$fileName = sha1(date('YmdHis', time()) . uniqid()) . '.' . $resResult->type();

//执行阿里云上传
$result = $ossClient->uploadFile($config['Bucket'], $config['path'] . $fileName, $file->getInfo()['tmp_name']);

if ($result) {
$result['code'] = 1;
$result['info'] = '图片上传成功!';

$result['url'] = $result['oss-request-url'];
return $result;
}
} catch (OssException $e) {
return $e->getMessage();
}
}

阿里云OSS php 自定义域名 绑定bucket 访问正常,但是上传出现错误_阿里云_04

需要注意,在实例化OSS对象时后面需要添加为true,这样就可以使用自定义域名了