又拍云 php sdk,GitHub - totoleo/php-sdk: UPYUN PHP SDK
又拍云PHP SDK
[更新說明](#update instructions)
[使用說明](#use instructions)
示例
[上傳文件](#upload file)
[上傳圖片](#upload img)
[下載文件](#download file)
[獲取目錄文件列表](#file list)
[獲取文件信息](#file info)
[獲取空間使用狀況](#bucket info)
更新說明
使用1.0.x系列版本SDK的用戶,注意原有部分方法已經不再推薦使用(@deprecated標注),但是出于兼容考慮目前任然保留,建議更新升級程序使用新版SDK提供的方法。
使用說明
下載upyun.class.php到項目目錄
初始化UpYun
require_once('upyun.class.php');
$upyun = new UpYun('bucketname', 'operator_name', 'operator_pwd');
參數 bucketname 為空間名稱,operator_name、operator_pwd 為授權操作員的賬號密碼。
根據國內的網絡情況,又拍云存儲API目前提供了電信、聯通網通、移動鐵通三個接入點,在初始化的時候可以添加可選的第四個參數來指定API接入點。
$upyun = new UpYun('bucketname', 'operator_name', 'operator_pwd', UpYun::ED_TELECOM);
接入點有四個值可選:
UpYun::ED_AUTO 根據網絡條件自動選擇接入點
UpYun::ED_TELECOM 電信接入點
UpYun::ED_CNC 聯通網通接入點
UpYun::ED_CTT 移動鐵通接入點
默認參數為自動選擇API接入點。但是我們推薦根據服務器網絡狀況,手動設置合理的接入點已獲取最佳的訪問速度。
超時時間設置
在初始化UpYun上傳時,可以選擇設置上傳請求超時時間(默認30s):
$upyun = new UpYun('bucketname', 'operator_name', 'operator_pwd', UpYun::ED_TELECOM, 600);
示例
示例代碼中所有bucketname,operator_name,operator_pwd以及路徑需要替換成實際環境的值,賬戶密碼請注意保密
上傳文件
文件類空間可以上傳任意形式的二進制文件
1.直接讀取整個文件內容:
$upyun->writeFile('/path/to/server/file.ext', 'your file content', true);
2.文件流的方式上傳,可降低內存占用:
$file_handler = fopen('demo.png', 'r');
$upyun->writeFile('/path/to/server/demo.png', $file_handler, true);
fclose($file_handler);
writeFile()第三個參數為可選,true表示自動創建相應目錄,默認值為false。
文件空間上傳成功后返回true。
如果上傳失敗,則會拋出異常。
上傳圖片
圖片可以上傳到圖片類空間或文件類空間
圖片空間上傳的圖片不能超過20M,圖片寬*高*幀數不能超過2億
文件空間上傳的圖片不能超過1G
建議站點圖片上傳到圖片空間,便于在請求圖片時可以生成自定義版本圖片
1.上傳圖片并創建縮略圖:
writeFile()方法第四個參數為數組類型可選參數,用來設置文件類型、縮略圖處理。
$opts = array(
UpYun::X_GMKERL_THUMBNAIL => 'square' //創建縮略圖,該參數僅適用于圖片空間
);
$fh = fopen('demo.png', 'r');
$upyun->writeFile('/temp/upload_demo.png', $fh, true, $opts);
fclose($fh);
writeFile()方法第四個參數可以設置的值還包括:
UpYun::CONTENT_TYPE
UpYun::CONTENT_MD5
UpYun::CONTENT_SECRET
UpYun::X_GMKERL_THUMBNAIL
UpYun::X_GMKERL_TYPE
UpYun::X_GMKERL_VALUE
UpYun::X_GMKERL_QUALITY
UpYun::X_GMKERL_UNSHARP
參數的具體使用方法,請參考標準API上傳文件
圖片空間上傳成功后會返回一維數組,包含了圖片信息,示例如下:
array(
'x-upyun-width' => 2000,
'x-upyun-height' => 1000,
'x-upyun-frames' => 1
'x-upyun-file-type' => "JPEG"
)
如果上傳失敗,則會拋出異常。
下載文件
1.直接讀取文件內容:
$data = $upyun->readFile('/temp/upload_demo.png');
2.使用文件流模式下載:
$fh = fopen('/tmp/demo.png', 'w');
$upyun->readFile('/temp/upload_demo.png', $fh);
fclose($fh);
直接獲取文件時,返回文件內容,使用數據流形式獲取時,成功返回true。
如果獲取文件失敗,則拋出異常。
創建目錄
$upyun->makeDir('/demo/');
目錄路徑必須以斜杠 / 結尾,創建成功返回 true,否則拋出異常。
刪除目錄或者文件
$upyun->delete('/demo/'); // 刪除目錄
$upyun->delete('/demo/demo.png'); // 刪除文件
刪除成功返回true,否則拋出異常。注意刪除目錄時,必須保證目錄為空 ,否則也會拋出異常。
獲取目錄文件列表
$list = $upyun->getList('/demo/');
$file = $list[0];
echo $file['name'];// 文件名
echo $file['type'];// 類型(目錄: folder; 文件: file)
echo $file['size'];// 尺寸
echo $file['time'];// 創建時間
獲取目錄文件以及子目錄列表。需要獲取根目錄列表是,使用 $upyun->getList('/') ,或直接表用方法不傳遞參數。
目錄獲取失敗則拋出異常。
獲取文件信息
$result = $upyun->getFileInfo('/demo/demo.png');
echo $result['x-upyun-file-type']; // 文件類型
echo $result['x-upyun-file-size']; // 文件大小
echo $result['x-upyun-file-date']; // 創建日期
返回結果為一個數組。
獲取空間使用狀況
$upyun->getBucketUsage();// 獲取Bucket空間使用情況
返回的結果為空間使用量,單位 Byte
異常處理
當API請求發生錯誤時,SDK將拋出異常,具體錯誤代碼請參考標準API錯誤代碼表
根據返回HTTP CODE的不同,SDK將拋出以下異常:
UpYunAuthorizationException 401,授權錯誤
UpYunForbiddenException 403,權限錯誤
UpYunNotFoundException 404,文件或目錄不存在
UpYunNotAcceptableException 406, 目錄錯誤
UpYunServiceUnavailable 503,系統錯誤
未包含在以上異常中的錯誤,將統一拋出 UpYunException 異常。
為了正確處理API請求中可能出現的異常,建議將API操作放在try{...}catch(Exception $e){…} 塊中,如下所示:
try {
$upyun->getFolderUsage('/demo/');
//your code here
} catch(Exception $e) {
echo $e->getCode();// 錯誤代碼
echo $e->getMessage();// 具體錯誤信息
}
貢獻代碼
Fork
為新特性創建一個新的分支
發送一個 pull request 到 develop 分支
社區
許可證
UPYUN PHP-SDK基于 MIT 開源協議
總結
以上是生活随笔為你收集整理的又拍云 php sdk,GitHub - totoleo/php-sdk: UPYUN PHP SDK的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 简谐震动简单分析
- 下一篇: 什么意思中文_中文十级考题,请解释这四句