七牛云的使用

參考-呂昌博客
我們可以直接進入官網(wǎng)的php手冊
我發(fā)現(xiàn)看composer里面的qiniu/qiniu組建是沒有用的

  • .env代碼
    QINIU_BUCKET=test
    QINIU_ACCESSKEY=xxxx // AccessKey
    QINIU_SECRETKEY=xxxx //SecretKey
    QINIU_DOMAIN=xxxx.bkt.clouddn.com

準備部分

第一步-創(chuàng)建密鑰AccessKey,SecretKey

首先去七牛云官網(wǎng)申請一個賬號,然后選擇個人中心->密鑰管理->創(chuàng)建密鑰

點擊個人中心
個人中心頁面
密鑰管理頁面

第二部 創(chuàng)建 BUCKET空間

首頁->對象存儲->創(chuàng)建空間
這個時候填寫的的存儲空間名稱 就是我們所需要的QINIU_BUCKET

image.png

第三部分 QINIU_DOMAIN

首頁->對象存儲
這個時候測試域名的那個地址,就是我們所需要的 QINIU_DOMAIN

image.png

使用部分

  • 首先運行 composer require qiniu/php-sdk
  • 上傳大概步驟
     ...
  
      $accessKey = 'Access_Key';
      $secretKey = 'Secret_Key';
      $auth = new Auth($accessKey, $secretKey);
      // 空間名  https://developer.qiniu.io/kodo/manual/concepts
      $bucket = 'Bucket_Name';
      // 生成上傳Token
      $token = $auth->uploadToken($bucket);
      // 構(gòu)建 UploadManager 對象
      $uploadMgr = new UploadManager();
       list($ret, $error) = $upManager->put($token, 'formput', 'hello world');
       ...
  • 實例代碼
    模板
    <html>
    <form action="test" method="post"
    enctype="multipart/form-data">
    {{ csrf_field() }}
    <label for="pic">Filename:</label>
    <input type="file" name="pic" id="file" />
    <br />
    <input type="submit" name="submit" value="Submit" />
    </form>
    </html>

    // 引入
    use Qiniu\Auth;  
    use Qiniu\Storage\UploadManager;
    
    /**
       * 一個表單提交,其中有圖片上傳的云存儲例子.
       *
       * @param  \Illuminate\Http\Request  $request
       * @return \Illuminate\Http\Response
       */
      public function store(\Request $request)
      {
          //
    
          $data = \Request::all();
          $file = $request->file('pic') ;
          if(!$file){
              return back() ;
          }
          if(!$file->isValid()){
              return back() ;
          }
           // 需要填寫你的 Access Key 和 Secret Key
          $accessKey = env('QINIU_ACCESSKEY');
          $secretKey = env('QINIU_SECRETKEY');
          // 構(gòu)建鑒權(quán)對象
          $auth = new Auth($accessKey, $secretKey);
          // 要上傳的空間
          $bucket = env('QINIU_BUCKET');
          // 生成上傳 Token
          $token = $auth->uploadToken($bucket);
          // 要上傳文件的本地路徑
          $filePath = $file->getRealPath();
          // 上傳到七牛后保存的文件名
          $date = time();
          $key = 'demo/'.$date.'.'.$file->getClientOriginalExtension();
          // 初始化 UploadManager 對象并進行文件的上傳。
          $uploadMgr = new UploadManager();
          // 調(diào)用 UploadManager 的 putFile 方法進行文件的上傳。
          list($ret, $err) = $uploadMgr->putFile($token, $key, $filePath);
          if ($err !== null) {
              return response()->json(['ResultData'=>'失敗','info'=>'失敗']);
          } else {
              $info = ['name'=>$data['name'],
                      'level'=>$data['level'],
                      'pic'=>$ret['key'],
                      'addtime'=>$date,
                      'status'=>'1'];
              $ids = \DB::table('data_demo')->insertGetid($info);
              if($ids){
                  return redirect('/demo');
              }else{
                  dd('添加失敗');
              }
          }
      }
    

文件下載

<?php
    require 'path_to_sdk/vendor/autoload.php';
    // 引入鑒權(quán)類
    use Qiniu\Auth;
    // 需要填寫你的 Access Key 和 Secret Key
    $accessKey = 'Access_Key';
    $secretKey = 'Secret_Key';
    
    // 構(gòu)建鑒權(quán)對象
    $auth = new Auth($accessKey, $secretKey);
    //baseUrl構(gòu)造成私有空間的域名/key的形式
    $baseUrl = 'http://domain/key';
    $authUrl = $auth->privateDownloadUrl($baseUrl);
    echo $authUrl;
?>

刪除單個文件

 public function test2()
    {
        $accessKey = env('QINIU_ACCESSKEY');
        $secretKey = env('QINIU_SECRETKEY');
        // 構(gòu)建鑒權(quán)對象
        $auth = new Auth($accessKey, $secretKey);
//        dd($auth);
        // 要上傳的空間
        $bucket = env('QINIU_BUCKET');
        //初始化BucketManager
        $bucketMgr = new BucketManager($auth);
        //你要測試的空間, 并且這個key在你空間中存在
        $key = 'demo/1486372794.jpg';
        //刪除$bucket 中的文件 $key
        $err = $bucketMgr->delete($bucket, $key);
        echo "\n====> delete $key : \n";
        if ($err !== null) {
            var_dump($err);
        } else {
            echo "Success!";
        }
    }

我們查看圖片鏈接會發(fā)現(xiàn),圖片的url其實是 QINIU_DOMAIN+圖片名字

  • 圖片所在位置是 首頁->對象存儲-> 內(nèi)容管理
image.png
$uploadMgr->putFile($token, $key, $filePath)結(jié)果

在創(chuàng)建空間的時候,選擇公開空間或者私有空間,我們這套代碼都實用

image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容