Laravel 使用騰訊雲 cos 進行圖片上傳使用詳解

夜遊人發表於2021-09-04

Laravel版本

我用的版本是:Laravel 6.2

開通騰訊雲COS

具體的請看詳情:cloud.tencent.com/document/product...

Laravel 使用騰訊雲 cos 進行圖片上傳使用詳解

安裝外掛

composer require "freyo/flysystem-qcloud-cos-v5:^2.0"

Laravel 使用騰訊雲 cos 進行圖片上傳使用詳解

具體使用

配置 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...

Laravel 使用騰訊雲 cos 進行圖片上傳使用詳解

獲取API密匙:console.cloud.tencent.com/cam/capi

Laravel 使用騰訊雲 cos 進行圖片上傳使用詳解

上傳程式碼

$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 使用騰訊雲 cos 進行圖片上傳使用詳解

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();

需要注意的是: 如果使用多個磁碟進行上傳,路徑的顯示有些問題,需要儲存絕對路徑才行,這裡我還沒處理好,有使用過的請指教下怎麼處理。

使用自定義源站域名

如果要使用自己的域名替換預設的域名,只需要兩個步驟:

  • 新增【自定義源站域名】

Laravel 使用騰訊雲 cos 進行圖片上傳使用詳解

  • 設定對應的域名解析

Laravel 使用騰訊雲 cos 進行圖片上傳使用詳解
如有疑問可檢視官方文件:cloud.tencent.com/document/product...

流程基本上就這樣了,公司專案剛好要用到雲端儲存。完成後寫個筆記,方便自己以後查閱,也希望能幫助到有需要的朋友。2021-09-04。

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章