1.首先注册七牛云存储账号 http://www.qiniu.com/

2.获得密钥

php 关于使用七牛云存储-LMLPHP

3.仔细查看文档

http://developer.qiniu.com/docs/v6/sdk/php-sdk.html#io-put-flow

4.下载sdk 可以使用composer,也可以直接使用压缩包进行下载

5.在项目中引入七牛的类包

6.获得token

代码:

<?php
require_once 'autoload.php';

use Qiniu\Auth;

$accessKey = 'ntL5AciwhaAa35APXKCSlC4KoUKyN77KNPmbHW0K';
$secretKey = 'x5W3KQikAzHTBYRdezWSMY9XGn0MLR0GQLXRd6X1';
$auth = new Auth($accessKey, $secretKey);

$bucket = 'bucket';
$token = $auth->uploadToken($bucket);
?>

结果:

string

 'ntL5AciwhaAa35APXKCSlC4KoUKyN77KNPmbHW0K:H_W87vY-abWaHvOKpzVNGdwNUbc=:eyJzY29wZSI6ImJ1Y2tldCIsImRlYWRsaW5lIjoxNDM3OTc3ODAyfQ==' (length=126)

7.上传字符串

代码:

<?php
require_once 'autoload.php';

use Qiniu\Auth;
use Qiniu\Storage\UploadManager;

$accessKey = '你的accessKey';
$secretKey = '你的secretKey';
$auth = new Auth($accessKey, $secretKey);

$bucket = 'bucket';

// 设置put policy的其他参数, 上传回调
//$opts = array(
// 'callbackUrl' => 'http://www.callback.com/',
// 'callbackBody' => 'name=$(fname)&hash=$(etag)'
// );
//$token = $auth->uploadToken($bucket, null, 3600, $opts);

$token = $auth->uploadToken($bucket);
$uploadMgr = new UploadManager();

list($ret, $err) = $uploadMgr->put($token, null, 'content string');
echo "\n====> put result: \n";
if ($err !== null) {
var_dump($err);
} else {
var_dump($ret);
}
?>

结果:

====> put result:

array (size=2)
'hash' =>

string

 'FkRvouCaQN6HmCyPmMuBd0OnhiOi' (length=28)
'key' =>

string

 'FkRvouCaQN6HmCyPmMuBd0OnhiOi' (length=28)

8.上传文件
代码:

<?php
require_once 'autoload.php';

use Qiniu\Auth;
use Qiniu\Storage\UploadManager;

$accessKey = '你的accessKey';
$secretKey = '你的secretKey';
$auth = new Auth($accessKey, $secretKey);

$bucket = 'bucket';

// 设置put policy的其他参数, 上传回调
//$opts = array(
// 'callbackUrl' => 'http://www.callback.com/',
// 'callbackBody' => 'name=$(fname)&hash=$(etag)'
// );
//$token = $auth->uploadToken($bucket, null, 3600, $opts);

$token = $auth->uploadToken($bucket);
$uploadMgr = new UploadManager();

list($ret, $err) = $uploadMgr->putFile($token, null, "desert.jpg");
echo "\n====> putFile result: \n";
if ($err !== null) {
var_dump($err);
} else {
var_dump($ret);
}
?>

结果:
====> putFile result:
array (size=2)
'hash' =>
string
 'FjBCDRqa-yvLYDNYElaa9ENaWc4X' (length=28)
'key' =>
string
 'FjBCDRqa-yvLYDNYElaa9ENaWc4X' (length=28)
9.下载图片(私有,如果公有的话,不用key值)

<?php
require_once 'autoload.php';

use Qiniu\Auth;

$accessKey = '你的accessKey';
$secretKey = '你的secretKey';
$auth = new Auth($accessKey, $secretKey);

$baseUrl = 'http://7xkofd.com1.z0.glb.clouddn.com/FtmX4cN-3AWth9A2A-Mq1JXuLPzh';
$authUrl = $auth->privateDownloadUrl($baseUrl);
function download_remote_file_with_curl($file_url, $save_to)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_POST, 0);
curl_setopt($ch,CURLOPT_URL,$file_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$file_content = curl_exec($ch);
curl_close($ch);

$downloaded_file = fopen($save_to, 'w');
fwrite($downloaded_file, $file_content);
fclose($downloaded_file);

}
download_remote_file_with_curl($authUrl, time().'file.jpg')
?>



05-28 23:16