国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

七牛云存儲(chǔ)官方接口PHP版本

wwq0327 / 2680人閱讀

摘要:基于七牛云存儲(chǔ)官方構(gòu)建。使用此構(gòu)建您的網(wǎng)絡(luò)應(yīng)用程序,能讓您以非常便捷地方式將數(shù)據(jù)安全地存儲(chǔ)到七牛云存儲(chǔ)上。應(yīng)用接入獲取和要接入七牛云存儲(chǔ),您需要擁有一對(duì)有效的和用來進(jìn)行簽名認(rèn)證。文件下載七牛云存儲(chǔ)上的資源下載分為公有資源下載和私有資源下載。

此 SDK 適用于 PHP 5.1.0 及其以上版本。基于 七牛云存儲(chǔ)官方API 構(gòu)建。使用此 SDK 構(gòu)建您的網(wǎng)絡(luò)應(yīng)用程序,能讓您以非常便捷地方式將數(shù)據(jù)安全地存儲(chǔ)到七牛云存儲(chǔ)上。無論您的網(wǎng)絡(luò)應(yīng)用是一個(gè)網(wǎng)站程序,還是包括從云端(服務(wù)端程序)到終端(手持設(shè)備應(yīng)用)的架構(gòu)的服務(wù)或應(yīng)用,通過七牛云存儲(chǔ)及其 SDK,都能讓您應(yīng)用程序的終端用戶高速上傳和下載,同時(shí)也讓您的服務(wù)端更加輕盈。

應(yīng)用接入

獲取Access Key 和 Secret Key
要接入七牛云存儲(chǔ),您需要擁有一對(duì)有效的 Access Key 和 Secret Key 用來進(jìn)行簽名認(rèn)證。可以通過如下步驟獲得:

開通七牛開發(fā)者帳號(hào)
登錄七牛開發(fā)者自助平臺(tái),查看 Access Key 和 Secret Key 。

資源管理接口

1.查看單個(gè)文件屬性信息
示例代碼如下:

require_once("qiniu/rs.php");

$bucket = "phpsdk";
$key = "pic.jpg";
$accessKey = "";
$secretKey = "";

Qiniu_SetKeys($accessKey, $secretKey);
$client = new Qiniu_MacHttpClient(null);

list($ret, $err) = Qiniu_RS_Stat($client, $bucket, $key);
echo "Qiniu_RS_Stat result: 
";
if ($err !== null) {
    var_dump($err);
} else {
    var_dump($ret);
}

復(fù)制單個(gè)文件
示例代碼如下:

require_once("qiniu/rs.php");

$bucket = "phpsdk";
$key = "pic.jpg";
$key1 = "file_name1";
$accessKey = "";
$secretKey = "";

Qiniu_SetKeys($accessKey, $secretKey);
$client = new Qiniu_MacHttpClient(null);

$err = Qiniu_RS_Copy($client, $bucket, $key, $bucket, $key1);
echo "====> Qiniu_RS_Copy result: 
";
if ($err !== null) {
    var_dump($err);
} else {
    echo "Success!";
}

移動(dòng)單個(gè)文件
示例代碼如下:

require_once("qiniu/rs.php");

$bucket = "phpsdk";
$key = "pic.jpg";
$key1 = "file_name1";
$accessKey = "";
$secretKey = "";

Qiniu_SetKeys($accessKey, $secretKey);
$client = new Qiniu_MacHttpClient(null);

$err = Qiniu_RS_Move($client, $bucket, $key, $bucket, $key1);
echo "====> Qiniu_RS_Move result: 
";
if ($err !== null) {
    var_dump($err);
} else {
    echo "Success!";
}

刪除單個(gè)文件
示例代碼如下:

require_once("qiniu/rs.php");

$bucket = "phpsdk";
$key1 = "file_name1";
$accessKey = "";
$secretKey = "";

Qiniu_SetKeys($accessKey, $secretKey);
$client = new Qiniu_MacHttpClient(null);

$err = Qiniu_RS_Delete($client, $bucket, $key1);
echo "====> Qiniu_RS_Delete result: 
";
if ($err !== null) {
    var_dump($err);
} else {
    echo "Success!";
}

上傳下載接口

1. 文件上傳

為了盡可能地改善終端用戶的上傳體驗(yàn),七牛云存儲(chǔ)首創(chuàng)了客戶端直傳功能。一般云存儲(chǔ)的上傳流程是:

客戶端(終端用戶) => 業(yè)務(wù)服務(wù)器 => 云存儲(chǔ)服務(wù)
這樣多了一次上傳的流程,和本地存儲(chǔ)相比,會(huì)相對(duì)慢一些。但七牛引入了客戶端直傳,將整個(gè)上傳過程調(diào)整為:

客戶端(終端用戶) => 七牛 => 業(yè)務(wù)服務(wù)器
客戶端(終端用戶)直接上傳到七牛的服務(wù)器,通過DNS智能解析,七牛會(huì)選擇到離終端用戶最近的ISP服務(wù)商節(jié)點(diǎn),速度會(huì)比本地存儲(chǔ)快很多。文件上傳成功以后,七牛的服務(wù)器使用回調(diào)功能,只需要將非常少的數(shù)據(jù)(比如Key)傳給應(yīng)用服務(wù)器,應(yīng)用服務(wù)器進(jìn)行保存即可。

1.1上傳流程
在七牛云存儲(chǔ)中,整個(gè)上傳流程大體分為這樣幾步:

業(yè)務(wù)服務(wù)器頒發(fā) uptoken(上傳授權(quán)憑證)給客戶端(終端用戶)
客戶端憑借 uptoken 上傳文件到七牛
在七牛獲得完整數(shù)據(jù)后,發(fā)起一個(gè) HTTP 請(qǐng)求回調(diào)到業(yè)務(wù)服務(wù)器
業(yè)務(wù)服務(wù)器保存相關(guān)信息,并返回一些信息給七牛
七牛原封不動(dòng)地將這些信息轉(zhuǎn)發(fā)給客戶端(終端用戶)
需要注意的是,回調(diào)到業(yè)務(wù)服務(wù)器的過程是可選的,它取決于業(yè)務(wù)服務(wù)器頒發(fā)的 uptoken。如果沒有回調(diào),七牛會(huì)返回一些標(biāo)準(zhǔn)的信息(比如文件的 hash)給客戶端。如果上傳發(fā)生在業(yè)務(wù)服務(wù)器,以上流程可以自然簡化為:

業(yè)務(wù)服務(wù)器生成 uptoken(不設(shè)置回調(diào),自己回調(diào)到自己這里沒有意義)
憑借 uptoken 上傳文件到七牛
善后工作,比如保存相關(guān)的一些信息
服務(wù)端生成 uptoken 代碼如下:

require_once("qiniu/rs.php");

$bucket = "phpsdk";
$accessKey = "";
$secretKey = "";

Qiniu_SetKeys($accessKey, $secretKey);
$putPolicy = new Qiniu_RS_PutPolicy($bucket);
$upToken = $putPolicy->Token(null);

上傳文件到七牛(通常是客戶端完成,但也可以發(fā)生在服務(wù)端):

上傳字符串

require_once("qiniu/io.php");
require_once("qiniu/rs.php");

$bucket = "phpsdk";
$key1 = "file_name1";
$accessKey = "";
$secretKey = "";

Qiniu_SetKeys($accessKey, $secretKey);
$putPolicy = new Qiniu_RS_PutPolicy($bucket);
$upToken = $putPolicy->Token(null);
list($ret, $err) = Qiniu_Put($upToken, $key1, "Qiniu Storage!", null);
echo "====> Qiniu_Put result: 
";
if ($err !== null) {
    var_dump($err);
} else {
    var_dump($ret);
}

上傳本地文件

require_once("qiniu/io.php");
require_once("qiniu/rs.php");

$bucket = "phpsdk";
$key1 = "file_name1";
$accessKey = "";
$secretKey = "";

Qiniu_SetKeys($accessKey, $secretKey);
$putPolicy = new Qiniu_RS_PutPolicy($bucket);
$upToken = $putPolicy->Token(null);
$putExtra = new Qiniu_PutExtra();
$putExtra->Crc32 = 1;
list($ret, $err) = Qiniu_PutFile($upToken, $key1, __file__, $putExtra);
echo "====> Qiniu_PutFile result: 
";
if ($err !== null) {
    var_dump($err);
} else {
    var_dump($ret);
}

1.2 上傳策略
uptoken 實(shí)際上是用 AccessKey/SecretKey 進(jìn)行數(shù)字簽名的上傳策略(Qiniu_RS_PutPolicy),它控制則整個(gè)上傳流程的行為。讓我們快速過一遍你都能夠決策啥:

class Qiniu_RS_PutPolicy
{

public $Scope;              // 必選項(xiàng)。可以是 bucketName 或者 bucketName:key
public $CallbackUrl;        // 可選
public $CallbackBody;       // 可選
public $ReturnUrl;          // 可選, 更貼切的名字是 redirectUrl。
public $ReturnBody;         // 可選
public $AsyncOps;           // 可選
public $EndUser;            // 可選
public $Expires;            // 可選。默認(rèn)是 3600 秒

}

scope 限定客戶端的權(quán)限。如果 scope 是 bucket,則客戶端只能新增文件到指定的 bucket,不能修改文件。如果 scope 為 bucket:key,則客戶端可以修改指定的文件。
callbackUrl 設(shè)定業(yè)務(wù)服務(wù)器的回調(diào)地址,這樣業(yè)務(wù)服務(wù)器才能感知到上傳行為的發(fā)生。
callbackBody 設(shè)定業(yè)務(wù)服務(wù)器的回調(diào)信息。文件上傳成功后,七牛向業(yè)務(wù)服務(wù)器的callbackUrl發(fā)送的POST請(qǐng)求攜帶的數(shù)據(jù)。支持 魔法變量 和 自定義變量。
returnUrl 設(shè)置用于瀏覽器端文件上傳成功后,瀏覽器執(zhí)行301跳轉(zhuǎn)的URL,一般為 HTML Form 上傳時(shí)使用。文件上傳成功后瀏覽器會(huì)自動(dòng)跳轉(zhuǎn)到 returnUrl?upload_ret=returnBody。
returnBody 可調(diào)整返回給客戶端的數(shù)據(jù)包,支持 魔法變量 和 自定義變量。returnBody 只在沒有 callbackUrl 時(shí)有效(否則直接返回 callbackUrl 返回的結(jié)果)。不同情形下默認(rèn)返回的 returnBody 并不相同。在一般情況下返回的是文件內(nèi)容的 hash,也就是下載該文件時(shí)的 etag;但指定 returnUrl 時(shí)默認(rèn)的 returnBody 會(huì)帶上更多的信息。
asyncOps 可指定上傳完成后,需要自動(dòng)執(zhí)行哪些數(shù)據(jù)處理。這是因?yàn)橛行?shù)據(jù)處理操作(比如音視頻轉(zhuǎn)碼)比較慢,如果不進(jìn)行預(yù)轉(zhuǎn)可能第一次訪問的時(shí)候效果不理想,預(yù)轉(zhuǎn)可以很大程度改善這一點(diǎn)。
關(guān)于上傳策略更完整的說明,請(qǐng)參考 uptoken。

文件下載
七牛云存儲(chǔ)上的資源下載分為 公有資源下載 和 私有資源下載 。

私有(private)是 Bucket(空間)的一個(gè)屬性,一個(gè)私有 Bucket 中的資源為私有資源,私有資源不可匿名下載。

新創(chuàng)建的空間(Bucket)缺省為私有,也可以將某個(gè) Bucket 設(shè)為公有,公有 Bucket 中的資源為公有資源,公有資源可以匿名下載。

2.1 公有資源下載
如果在給bucket綁定了域名的話,可以通過以下地址訪問。

[GET] http:///
示例代碼:

$key = "pic.jpg";
$domain = "phpsdk.qiniudn.com";
//$baseUrl 就是您要訪問資源的地址
$baseUrl = Qiniu_RS_MakeBaseUrl($domain, $key);
其中可以到七牛云存儲(chǔ)開發(fā)者自助網(wǎng)站綁定, 域名可以使用自己一級(jí)域名的或者是由七牛提供的二級(jí)域名(.qiniudn.com)。注意,尖括號(hào)不是必需,代表替換項(xiàng)。

2.2 私有資源下載
私有資源必須通過臨時(shí)下載授權(quán)憑證(downloadToken)下載,如下:

[GET] http:///?e=&token=
注意,尖括號(hào)不是必需,代表替換項(xiàng)。
私有下載鏈接可以使用 SDK 提供的如下方法生成:

require_once("qiniu/rs.php");

$key = "pic.jpg";
$domain = "phpsdk.qiniudn.com";
$accessKey = "";
$secretKey = "";

Qiniu_SetKeys($accessKey, $secretKey);  
$baseUrl = Qiniu_RS_MakeBaseUrl($domain, $key);
$getPolicy = new Qiniu_RS_GetPolicy();
$privateUrl = $getPolicy->MakeRequest($baseUrl, null);
echo "====> getPolicy result: 
";
echo $privateUrl . "
";

數(shù)據(jù)處理接口
七牛支持在云端對(duì)圖像, 視頻, 音頻等富媒體進(jìn)行個(gè)性化處理

圖像

1.1 查看圖像屬性

require_once("qiniu/rs.php");
require_once("qiniu/fop.php");

$key = "pic.jpg";
$domain = "phpsdk.qiniudn.com";
$accessKey = "";
$secretKey = "";

Qiniu_SetKeys($accessKey, $secretKey);  
//生成baseUrl
$baseUrl = Qiniu_RS_MakeBaseUrl($domain, $key);

//生成fopUrl
$imgInfo = new Qiniu_ImageInfo;
$imgInfoUrl = $imgInfo->MakeRequest($baseUrl);

//對(duì)fopUrl 進(jìn)行簽名,生成privateUrl。 公有bucket 此步可以省去。
$getPolicy = new Qiniu_RS_GetPolicy();
$imgInfoPrivateUrl = $getPolicy->MakeRequest($imgInfoUrl, null);
echo "====> imageInfo privateUrl: 
";
echo $imgInfoPrivateUrl . "
";

將$imgInfoPrivateUrl粘貼到瀏覽器地址欄中就可以查看該圖像的信息了。

1.2 查看圖片EXIF信息

require_once("qiniu/rs.php");
require_once("qiniu/fop.php");

$key = "pic.jpg";
$domain = "phpsdk.qiniudn.com";
$accessKey = "";
$secretKey = "";

Qiniu_SetKeys($accessKey, $secretKey);  
//生成baseUrl
$baseUrl = Qiniu_RS_MakeBaseUrl($domain, $key);

//生成fopUrl
$imgExif = new Qiniu_Exif;
$imgExifUrl = $imgExif->MakeRequest($baseUrl);

//對(duì)fopUrl 進(jìn)行簽名,生成privateUrl。 公有bucket 此步可以省去。
$getPolicy = new Qiniu_RS_GetPolicy();
$imgExifPrivateUrl = $getPolicy->MakeRequest($imgExifUrl, null);
echo "====> imageView privateUrl: 
";
echo $imgExifPrivateUrl . "
";

1.3 生成圖片預(yù)覽

require_once("qiniu/rs.php");
require_once("qiniu/fop.php");

$key = "pic.jpg";
$domain = "phpsdk.qiniudn.com";
$accessKey = "";
$secretKey = "";

Qiniu_SetKeys($accessKey, $secretKey);  
//生成baseUrl
$baseUrl = Qiniu_RS_MakeBaseUrl($domain, $key);

//生成fopUrl
$imgView = new Qiniu_ImageView;
$imgView->Mode = 1;
$imgView->Width = 60;
$imgView->Height = 120;
$imgViewUrl = $imgView->MakeRequest($baseUrl);

//對(duì)fopUrl 進(jìn)行簽名,生成privateUrl。 公有bucket 此步可以省去。
$getPolicy = new Qiniu_RS_GetPolicy();
$imgViewPrivateUrl = $getPolicy->MakeRequest($imgViewUrl, null);
echo "====> imageView privateUrl: 
";
echo $imgViewPrivateUrl . "
";

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/31941.html

相關(guān)文章

  • 關(guān)于牛云正確使用姿勢(shì)探索

    摘要:,在后續(xù)測(cè)試時(shí)遇到一個(gè)詭異,當(dāng)文件過大時(shí),任務(wù)腳本上傳到七牛云失敗。當(dāng)我遇到大文件無法上傳到七牛云時(shí),斷點(diǎn)調(diào)試到這里,發(fā)現(xiàn)返回的是。后來還真被我找到了,七牛云官方提供一個(gè)腳本工具。 業(yè)務(wù)場(chǎng)景 需求 我們項(xiàng)目有一個(gè)文件上傳需求,需要從客戶端上傳到七牛云的對(duì)象存儲(chǔ)和自己的應(yīng)用服務(wù)器上。這里使用七牛云主要是實(shí)現(xiàn)下載分發(fā)。應(yīng)用服務(wù)器需要留一份是因?yàn)楹罄m(xù)需要做文件分析(并且是上傳后需要立馬分析出...

    3fuyu 評(píng)論0 收藏0
  • 使用牛云存儲(chǔ)的一些經(jīng)驗(yàn)總結(jié)

    摘要:原文使用七牛云存儲(chǔ)的一些經(jīng)驗(yàn)總結(jié)錯(cuò)誤處理如果在與七牛的交互中出現(xiàn)狀態(tài)碼為的錯(cuò)誤,一句話,不要猶豫,直接聯(lián)系七牛技術(shù)支持。但是筆者發(fā)現(xiàn),在使用七牛云轉(zhuǎn)化后的視頻,這樣做是無效的。 近段時(shí)間將使用七牛云存儲(chǔ)來存放用戶上傳的數(shù)據(jù),客戶端通過七牛的js-sdk與七牛交互,服務(wù)端C#實(shí)現(xiàn)了七牛相關(guān)的接口。在這過程中多多少少遇到點(diǎn)問題,在這里總結(jié)一下。原文:使用七牛云存儲(chǔ)的一些經(jīng)驗(yàn)總結(jié) 599錯(cuò)...

    Lyux 評(píng)論0 收藏0
  • Ueditor結(jié)合牛云存儲(chǔ)上傳圖片、附件和圖片在線管理的實(shí)現(xiàn)和最新更新

    摘要:版本修復(fù)提供多文件上傳,解決了以前不能多文件上傳問題,最大上傳圖片張,最大上傳附件,如果感覺時(shí)間不足可修改中的時(shí)間,現(xiàn)在是修復(fù)了文件同名上傳失敗的問題,解決方案是同名上傳覆蓋,即的方式修復(fù)了丟失的問題修改了上一版執(zhí)行安全漏洞還有個(gè)小就是上傳 1.0版本修復(fù)bug 提供多文件上傳,解決了以前不能多文件上傳問題,最大上傳圖片32張,最大上傳附件10,如果感覺時(shí)間不足可修改getToke...

    xavier 評(píng)論0 收藏0
  • 創(chuàng)業(yè)初期數(shù)據(jù)庫云備份之laravel解決方案

    摘要:在中注冊(cè)發(fā)布之后,我們會(huì)產(chǎn)生一個(gè)監(jiān)聽器,文件已經(jīng)存儲(chǔ)在本地,獲取該文件信息將文件上傳至七牛云存入數(shù)據(jù)庫上面的部分代碼沒寫,大家可以去自己去試下,加深對(duì)七牛云及的理解,完全可以達(dá)到目的。 最近項(xiàng)目用戶徒增,購買的服務(wù)器還是和公司另外一個(gè)項(xiàng)目共用的同一臺(tái)服務(wù)器,想著要是服務(wù)器崩了,還沒個(gè)容災(zāi)方案,萬一。。。不得被用戶整死 選用方案 laravel-backup 配合laravel的任務(wù)調(diào)...

    2bdenny 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<