七牛雲對象存儲實現簡單的上傳
官網文檔裏面也有上傳代碼,下面的代碼只需要自己填上自己的密鑰和存儲空間名就可以進行上傳文件測試。
<?php
require 'vendor/autoload.php';
use Qiniu\Auth;
// 引入上傳類
use Qiniu\Storage\UploadManager;
// 用於簽名的公鑰和私鑰
$accessKey = '';
$secretKey = '';
$bucket = '';
// 初始化籤權對象
$auth = new Auth($accessKey, $secretKey);
$token = $auth->uploadToken($bucket);
// 要上傳文件的本地路徑
$filePath = './370009-2.png';
// 上傳到存儲後保存的文件名
$key = 'test/370009-2.png';
// 初始化 UploadManager 對象並進行文件的上傳。
$uploadMgr = new UploadManager();
// 調用 UploadManager 的 putFile 方法進行文件的上傳。
list($ret, $err) = $uploadMgr->putFile($token, $key, $filePath, null, 'application/octet-stream', true, null, 'v2');
echo "\n====> putFile result: \n";
if ($err !== null) {
var_dump($err);
} else {
var_dump($ret);
}代碼解讀
這段代碼是使用七牛雲對象存儲服務的 PHP SDK 實現文件的上傳。以下是對代碼的解析:
- 引入依賴庫
首先引入了 Qiniu 的 PHP SDK 所需的依賴庫 'vendor/autoload.php',由於沒有提供具體路徑,因此可以看出是在項目當前目錄下使用 Composer 安裝的 SDK。
- 賦值密鑰和 Bucket 名稱
將 accessKey、secretKey 和 bucket 的值分別賦給變量 accessKey、secretKey 和 $bucket,這些值來自於七牛雲後臺賬戶中創建的 Access Key 和 Secret Key,以及要上傳的空間(Bucket)名稱。
- 初始化籤權對象
使用 accessKey 和 secretKey 初始化一個 Auth 對象,該對象用於進行簽名操作,確保接口請求不被非法訪問,保證數據安全性。
- 獲取上傳憑證
調用籤權對象的 uploadToken 方法獲取上傳憑證 $token,該憑證包含了上傳文件所需的必要參數,例如:上傳策略、上傳空間、上傳過期時間等。
- 上傳文件
使用 UploadManager 對象調用 putFile 方法,將本地文件上傳到指定的 Bucket 中。其中,token參數爲上傳憑證,key 是上傳文件保存到 Bucket 中的文件名,$filePath 是待上傳的本地文件路徑。通過該方法上傳文件時,還可以指定上傳相關的一些可選參數,例如:指定上傳文件類型、是否覆蓋已存在的同名文件等。
- 輸出上傳結果
最後,使用 var_dump() 函數輸出上傳結果 $ret 和 $err,如果 $err 爲 null,則表示上傳成功,否則表示上傳失敗,此時可以查看 $err 中的錯誤信息。