Laravel版本
我用的版本是:Laravel 6.2
開通騰訊雲COS
具體的請看詳情:cloud.tencent.com/document/product...
安裝外掛
composer require "freyo/flysystem-qcloud-cos-v5:^2.0"
具體使用
配置 config/filesystems.php
'cloud' => env('FILESYSTEM_CLOUD', 'cosv5'),
'disks' => [
// 騰訊雲 cos 儲存
'cosv5' => [
'driver' => 'cosv5',
'region' => env('COSV5_REGION', 'ap-shanghai'), // 需要設定
'credentials' => [
'appId' => env('COSV5_APP_ID'), // 需要設定
'secretId' => env('COSV5_SECRET_ID'), // 需要設定
'secretKey' => env('COSV5_SECRET_KEY'), // 需要設定
],
'timeout' => env('COSV5_TIMEOUT', 60),
'connect_timeout' => env('COSV5_CONNECT_TIMEOUT', 60),
'bucket' => env('COSV5_BUCKET'), // 需要設定
'cdn' => env('COSV5_CDN'),
'scheme' => env('COSV5_SCHEME', 'https'),
],
],
檢視 region和bucket 引數:console.cloud.tencent.com/cos5/buc...
獲取API密匙:console.cloud.tencent.com/cam/capi
上傳程式碼
$file = $request->avatar; // 獲取上傳檔案物件,name 為 avatar
$disk = \Storage::disk('cosv5');
$path = $disk->put('images', $file); // images 為儲存桶裡面的目錄名稱;這裡生成的是唯一的檔名,也可指定檔名,具體請看下方的文件連結
$url = $disk->url($path); // 獲取上傳檔案的url
- 注意事項
- 無需在 config/app.php 引入 providers
- 無需進行任何的 use 引入
- 具體的使用可檢視文件:檔案儲存《Laravel 6 中文文件》
- 獲取的url,預設情況下是不能直接訪問圖片的,如果需要訪問圖片,需要修改儲存桶的訪問許可權:公有讀私有寫
Laravel-admin上傳圖片
配置 config/admin.php
'upload' => [
// 只需把 disk 設為 cosv5 就可以了
'disk' => 'cosv5',
.
.
.
],
使用技巧
'upload' => [
// 設定多個磁碟
'disk' => 'cosv5', 'admin',
.
.
.
],
// 使用的時候指定磁碟:->disk($disk_name)
$form->image('icon', '圖示')->disk('admin')->uniqueName()->move('images/icon')->required();
需要注意的是: 如果使用多個磁碟進行上傳,路徑的顯示有些問題,需要儲存絕對路徑才行,這裡我還沒處理好,有使用過的請指教下怎麼處理。
使用自定義源站域名
如果要使用自己的域名替換預設的域名,只需要兩個步驟:
- 新增【自定義源站域名】
- 設定對應的域名解析
如有疑問可檢視官方文件:cloud.tencent.com/document/product...
流程基本上就這樣了,公司專案剛好要用到雲端儲存。完成後寫個筆記,方便自己以後查閱,也希望能幫助到有需要的朋友。2021-09-04。
本作品採用《CC 協議》,轉載必須註明作者和本文連結