码迷,mamicode.com
首页 > Web开发 > 详细

腾讯云对象存储服务(cos)之PHP实践

时间:2016-05-12 18:24:59      阅读:1232      评论:0      收藏:0      [点我收藏+]

标签:

云对象存储服务, BAT都有其业务, 本文选择腾讯是因为腾讯有每月免费流量, 而阿里和百度都是需要先付费后使用, 另外新兴的像七牛云存储, 也是很不错的解决方案.
贴代码

<?php
/**
 * Simple Tencent COS SDK
 * 2016/05/09
 * Author: hldh214 <hldh214@gmail.com>
 */

// 配置项 start
$appid = ‘‘;
$bucket_name = ‘‘;
$dir_name = ‘‘;
$secretID = ‘‘;
$secretKey = ‘‘;
// 配置项 end

// 需要存储的资源url, 这里用百度logo来做演示
$pic_url = ‘http://www.baidu.com/img/logo.gif‘;
// 获取文件名
$filename = end(explode(‘/‘, $pic_url));
// 构造上传url
$upload_url = "web.file.myqcloud.com/files/v1/$appid/$bucket_name/$dir_name/$filename";
// 设置过期时间
$exp = time() + 3600;
// 构造鉴权key
$sign = "a=$appid&b=$bucket_name&k=$secretID&e=$exp&t=" . time() . ‘&r=‘ . rand() . "&f=/$appid/$bucket_name/$dir_name/$filename";
$sign = base64_encode(hash_hmac(‘SHA1‘, $sign, $secretKey, true) . $sign);
// 构造post数据
$post_data = [
    ‘op‘ => ‘upload‘,
    ‘filecontent‘ => file_get_contents($pic_url),  // baidu logo
];
// 设置post的headers, 加入鉴权key
$header = [
    ‘Content-Type: multipart/form-data‘,
    ‘Authorization: ‘ . $sign,
];
// post
$ch = curl_init($upload_url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
$res = curl_exec($ch);
curl_close($ch);
$res = json_decode($res, true);
if (isset($res[‘data‘][‘access_url‘])) {
    // 成功, 输出文件url
    echo $res[‘data‘][‘access_url‘];
} else {
    // 失败
    echo $res;
}

腾讯云对象存储服务(cos)之PHP实践

标签:

原文地址:http://blog.csdn.net/hldh214/article/details/51351808

(1)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!