登录到七牛云官网注册一个账号
地址:http://www.qiniu.com
获取对应的七牛云秘钥
位置:个人面板->秘钥管理
获取一对 AccessKey/SecretKey 秘钥
建立存储空间
位置:对象存储
对象存储中可以管理上传的文件、对空间的设置、域名绑定、样式分割符设置及图片样式设定。
基本用法
文档地址:http://developer.qiniu.com/code/v7/sdk/php.html#usage
1、引入SDK
无论你是通过哪种方式安装的 SDK,只需要一句简单的 require 语句将安装好的SDK包含到你的项目中。请参考如下表格,找到适合你的安装方式,将SDK引入到你的项目中。请用你项目中的实际路径替换 path_to_sdk。
1 2 3 4 5 6 7 8 9 10 11
| Composer 安装
require 'path_to_sdk/vendor/autoload.php';
下载Composer安装包
require 'path_to_sdk/vendor/autoload.php';
下载源码安装包
require 'path_to_sdk/autoload.php';
|
2、SDK结构
可以直接查看我们的SDK目录,即可大致了解我们SDK的结构。
- 最外层包含:配置文件, 鉴权和一些公共的函数
- HTTP 目录主要包含了一些对 http 进行封装的类,这块你可以不用关心。
- Storage 目录主要包含两大块:Bucket 中文件的管理和文件的上传。
- Processing 目录主要包含文件的处理,文件处理又包含两个方面:同步处理和异步处理。
为了帮助您更好的了解和使用我们的sdk,我们还提供了各种使用示例。 如果使用中遇到问题,可以通过Github或者我们的工单进行反馈。下面我们对一些关键点进行简单的介绍,方便您快速入门。
3、鉴权类
在使用七牛的SDK的过程中鉴权是很重要的一块,不管是上传鉴权,下载签权, 还是回调的签权。 PHP SDK 中的Auth类封装了所有的鉴权方式。 所以在使用 PHP SDK 时基本都会先对鉴权类进行初始化:
1 2 3 4 5 6 7 8 9 10 11
| <?php require 'path_to_sdk/vendor/autoload.php';
use Qiniu\Auth;
$accessKey = 'Access_Key'; $secretKey = 'Secret_Key';
$auth = new Auth($accessKey, $secretKey);
|
初始化好Auth 类后,就可以调用相应的方法了,比如生成私有下载链接方法 privateDownloadUrl,获取上传Token方法 uploadToken,验证回调方法 verifyCallback等。
上传流程
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
| <?php require_once 'path_to_sdk/vendor/autoload.php';
use Qiniu\Auth; use Qiniu\Storage\UploadManager;
$accessKey = 'Access_Key'; $secretKey = 'Secret_Key';
$auth = new Auth($accessKey, $secretKey);
$bucket = 'Bucket_Name';
$token = $auth->uploadToken($bucket);
$filePath = './php-logo.png';
$key = 'my-php-logo.png';
$uploadMgr = new UploadManager();
list($ret, $err) = $uploadMgr->putFile($token, $key, $filePath); echo "\n====> putFile result: \n"; if ($err !== null) { var_dump($err); } else { var_dump($ret); }
|
文件下载
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| <?php require 'path_to_sdk/vendor/autoload.php';
use Qiniu\Auth;
$accessKey = 'Access_Key'; $secretKey = 'Secret_Key';
$auth = new Auth($accessKey, $secretKey);
$baseUrl = 'http://domain/key'; $authUrl = $auth->privateDownloadUrl($baseUrl); echo $authUrl;?>
|
删除单个文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| <?php require_once 'path_to_sdk/vendor/autoload.php';
use Qiniu\Auth; use Qiniu\Storage\BucketManager;
$accessKey = 'Access_Key'; $secretKey = 'Secret_Key';
$auth = new Auth($accessKey, $secretKey);
$bucketMgr = new BucketManager($auth);
$bucket = 'Bucket_Name'; $key = 'php-logo.png';
$err = $bucketMgr->delete($bucket, $key); echo "\n====> delete $key : \n"; if ($err !== null) { var_dump($err); } else { echo "Success!"; }
|
还有更多的操作请参考官方文档,地址:http://developer.qiniu.com/code/v7/sdk/php.html#install
实际案例(实战项目中的方法封装)
1 2 3 4 5
| const ACCESS_KEY = 'byJc-8owLt9G5ljXsNYbTsfOCKzQgTV4UTPu3sCG' ; const SECRET_KEY = '6ybTxRxyDGndimpVMgK_k-6s1prGIPkGtB0Xolyb' ; const QINIU_BUCKET = 'op-zbj' ; const BASE_URL = 'http://ohsllkayi.bkt.clouddn.com' ;
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
|
public function UploadPicToQiNiu ($fileName , $filePath) { $auth = new Auth(lib_Constant:: ACCESS_KEY , lib_Constant:: SECRET_KEY );
$token = $auth-> uploadToken (lib_Constant:: QINIU_BUCKET) ;
$key = 'qiniu_'.md5( $fileName .rand(100 , 999)) ;
$uploadMgr = new UploadManager() ;
list ( $ret, $err ) = $uploadMgr -> putFile( $token , $key , $filePath) ; if ($err !== null) { return $err ; } else { return $ret ; } }
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
public function downloadPicToQiNiu ($filePath ) { $auth = new Auth(lib_Constant:: ACCESS_KEY , lib_Constant:: SECRET_KEY ); $baseUrl = lib_Constant:: BASE_URL. '/' .$filePath ; $authUrl = $auth-> privateDownloadUrl ($baseUrl ) ; return $authUrl; }
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
public function batchDownloadPicToQiNiu ( $filePathArray) { if ( empty( $filePathArray )){ return false; } $returnFullImagesPath = [] ; $auth = new Auth(lib_Constant:: ACCESS_KEY , lib_Constant:: SECRET_KEY ); foreach ($filePathArray as $filePath){ $baseUrl = lib_Constant:: BASE_URL. '/' .$filePath ; $returnFullImagesPath [] = $auth ->privateDownloadUrl ( $baseUrl) ; } return $returnFullImagesPath ; }
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
public function deleteToQiNiu ($filePath ) { $auth = new Auth(lib_Constant:: ACCESS_KEY , lib_Constant:: SECRET_KEY ); $bucketMgr = new BucketManager( $auth );
$err = $bucketMgr -> delete(lib_Constant:: QINIU_BUCKET ,$filePath ) ; if ( $err !== null ) { return fasle ; } else { return true; } }
|