参考-吕昌博客
我们可以直接进入官网的php手册
我发现看composer里面的qiniu/qiniu组建是没有用的
.env代码
QINIU_BUCKET=test
QINIU_ACCESSKEY=xxxx // AccessKey
QINIU_SECRETKEY=xxxx //SecretKey
QINIU_DOMAIN=xxxx.bkt.clouddn.com
准备部分
第一步-创建密钥AccessKey,SecretKey
首先去七牛云官网申请一个账号,然后选择个人中心->密钥管理->创建密钥
点击个人中心
个人中心页面
密钥管理页面
第二部 创建 BUCKET空间
首页->对象存储->创建空间
这个时候填写的的存储空间名称 就是我们所需要的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);
// 构建 UploadManager 对象
$uploadMgr = new UploadManager();
list($ret, $error) = $upManager->put($token, 'formput', 'hello world');
...
实例代码
模板
enctype="multipart/form-data">
{{ csrf_field() }}
Filename:
// 引入
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');
// 构建鉴权对象
$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();
// 调用 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('添加失败');
}
}
}
文件下载
require 'path_to_sdk/vendor/autoload.php';
// 引入鉴权类
use Qiniu\Auth;
// 需要填写你的 Access Key 和 Secret Key
$accessKey = 'Access_Key';
$secretKey = 'Secret_Key';
// 构建鉴权对象
$auth = new Auth($accessKey, $secretKey);
//baseUrl构造成私有空间的域名/key的形式
$baseUrl = 'http://domain/key';
$authUrl = $auth->privateDownloadUrl($baseUrl);
echo $authUrl;
?>
删除单个文件
public function test2()
{
$accessKey = env('QINIU_ACCESSKEY');
$secretKey = env('QINIU_SECRETKEY');
// 构建鉴权对象
$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!";
}
}
我们查看图片链接会发现,图片的url其实是 QINIU_DOMAIN+图片名字
图片所在位置是 首页->对象存储-> 内容管理
image.png
$uploadMgr->putFile($token, $key, $filePath)结果
在创建空间的时候,选择公开空间或者私有空间,我们这套代码都实用
image.png