做OSS圖片上傳時,可以采用阿里雲分配的oss域名,也可以使用自定義域名(綁定用戶域名),使用阿里雲域名太長,不美觀,我使用的綁定用戶域名。使用阿里雲分配域名時圖片文件可以正常上傳,使用自定義綁定用戶域名時發現報錯.
"\"綁定用戶域名\"bucket name is invalid"
錯誤大概意思是綁定的用戶域名沒有關聯到bucket上,在查看阿里雲oss文檔時發現還需要使用CNAME,使用CNAME綁定到域名域名
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對象時后面需要添加為true,這樣就可以使用自定義域名了
原文地址: https://yq.aliyun.com/articles/750221