七牛云好处:云存储,云加速,CDN镜像存储等等,自直观的说,就是把一些静态文件如:css、js、图片等存储到七牛云,然后通过一个分配的或者自己绑定的域名开启CDN加速去访问,这样既减少了自己的服务器压力,又也减少了宽带,非常适合个人,或者一些中小型企业网站使用。
-
注册七牛云账号
-
到对象存储新建一个存储空间,并记下名称
-
到个人中心 -> 密钥管理获取密钥:AK和SK
-
下载七牛云的SDK推荐使用Composer下载
PHP
php composer.phar require qiniu/php-sdk
代码实例
// 引入类文件
use Qiniu\Auth;
use Qiniu\Storage\UploadManager;
/**
* 共用部分
*/
protected $token;
const BUCKET = '空间名字'; //七牛云空间名
const DOMAIN = 'http://'.'你的域名'.'/'; //CDN加速域名
const ACCESS_KEY = '你的AK密钥'; //七牛云密钥AK
const SECRET_KEY = '你的SK密钥'; //七牛云密钥SK
// 初始化自动加载方法
public function initialize(){
$auth = new Auth(self::ACCESS_KEY, self::SECRET_KEY);
// 生成上传Token
$this->token = $auth->uploadToken(self::BUCKET);
}
/**
* 上传部分
* @param array $file 图片参数
* @return array
*/
public function uploadOne() {
$data = $this->request->file("img"); //获取到图片的信息
$info = $data->getInfo(); //把图片信息转为数组
$info['name'] = md5(time().mt_rand(10000000,99999999).$_SERVER['REMOTE_ADDR']).substr($info['name'],strrpos($info['name'],".")); //生成永远不重复的图片名
// 构建UploadManager对象
$uploadMgr = new UploadManager();
list($ret, $err) = $uploadMgr->putFile($this->token, $info['name'], $info['tmp_name']);
// 判断是否上传成功
if ($err !== null) {
return ['err' => 0, 'data' => '上传失败'];
} else {
//返回图片的完整URL
return ['code' => 1, 'msg' => '上传完成', 'data' => (self::DOMAIN . $ret['key'])];
}
}
/**
* 删除图片
* @return bool
*/
public static function delimage()
{
$delFileName = "778bf3208bf2b62d288b5572074d6512.png"; //要删除的图片文件,与七牛云空间存在的文件名称相同
// 判断是否是图片 目前测试,简单判断
$isImage = preg_match('/.*(\.png|\.jpg|\.jpeg|\.gif)$/',$delFileName);
if(!$isImage){
return false;
}
// 构建鉴权对象
$auth = new Auth(self::ACCESS_KEY, self::SECRET_KEY);
// 配置
$config = new \Qiniu\Config();
// 管理资源
$bucketManager = new \Qiniu\Storage\BucketManager($auth, $config);
// 删除文件操作
$res = $bucketManager->delete(self::BUCKET, $delFileName);
if (is_null($res['1'])) {
return true; //删除成功了
}
return false; //删除失败了
}