Source for file vdisk.ex.class.php
Documentation is available at vdisk.ex.class.php
* vDisk sdk for SAE and Standard PHP
define('URL_GET_TOKEN', 'http://openapi.vdisk.me/?m=auth&a=get_token');
define('URL_KEEP_TOKEN', 'http://openapi.vdisk.me/?m=user&a=keep_token');
define('URL_UPLOAD_FILE', 'http://openapi.vdisk.me/?m=file&a=upload_file');
define('URL_UPLOAD_SHARE_FILE', 'http://openapi.vdisk.me/?m=file&a=upload_share_file');
define('URL_CREATE_DIR', 'http://openapi.vdisk.me/?m=dir&a=create_dir');
define('URL_GET_LIST', 'http://openapi.vdisk.me/?m=dir&a=get_list');
define('URL_GET_QUOTA', 'http://openapi.vdisk.me/?m=file&a=get_quota');
define('URL_UPLOAD_WITH_SHA1', 'http://openapi.vdisk.me/?m=file&a=upload_with_sha1');
define('URL_GET_FILE_INFO', 'http://openapi.vdisk.me/?m=file&a=get_file_info');
define('URL_DELETE_DIR', 'http://openapi.vdisk.me/?m=dir&a=delete_dir');
define('URL_DELETE_FILE', 'http://openapi.vdisk.me/?m=file&a=delete_file');
define('URL_COPY_FILE', 'http://openapi.vdisk.me/?m=file&a=copy_file');
define('URL_MOVE_FILE', 'http://openapi.vdisk.me/?m=file&a=move_file');
define('URL_RENAME_FILE', 'http://openapi.vdisk.me/?m=file&a=rename_file');
define('URL_RENAME_DIR', 'http://openapi.vdisk.me/?m=dir&a=rename_dir');
define('URL_MOVE_DIR', 'http://openapi.vdisk.me/?m=dir&a=move_dir');
define('URL_SHARE_FILE', 'http://openapi.vdisk.me/?m=file&a=share_file');
define('URL_CANCEL_SHARE_FILE', 'http://openapi.vdisk.me/?m=file&a=cancel_share_file');
define('URL_RECYCLE_GET_LIST', 'http://openapi.vdisk.me/?m=recycle&a=get_list');
define('URL_TRUNCATE_RECYCLE_GET', 'http://openapi.vdisk.me/?m=recycle&a=truncate_recycle');
define('URL_RECYCLE_DELETE_FILE', 'http://openapi.vdisk.me/?m=recycle&a=delete_file');
define('URL_RECYCLE_DELETE_DIR', 'http://openapi.vdisk.me/?m=recycle&a=delete_dir');
define('URL_RECYCLE_RESTORE_FILE', 'http://openapi.vdisk.me/?m=recycle&a=restore_file');
define('URL_RECYCLE_RESTORE_DIR', 'http://openapi.vdisk.me/?m=recycle&a=restore_dir');
define('URL_GET_DIRID_WITH_PATH', 'http://openapi.vdisk.me/?m=dir&a=get_dirid_with_path');
define('URL_EMAIL_SHARE_FILE', 'http://openapi.vdisk.me/?m=file&a=email_share_file');
* 微盘Open API是为第三方开发者提供的一套REST接口,通过该接口任何第三方的公司和个人都可以创建基于微盘的应用.更多{@link http://vdisk.me/api 相关说明} .
* include_once('vdisk.ex.class.php');
* $appsecret = '123456739cc20556637a576ea1234567';
* $username = 'username@gmail.com';
* $vdisk = new vDisk($appkey, $appsecret);
* $vdisk->get_token($username, $password);
* $_SESSION['token'] = $vdisk->token;
* $r = $vdisk->upload_share_file('文件.txt', 0);
* $r = $vdisk->get_list(0);
* $r = $vdisk->get_quota();
* $r = $vdisk->upload_with_md5('测试.pdf', '03d5717869bb075e3bad73b527fabc8a');
* $r = $vdisk->get_file_info(219379);
* $r = $vdisk->create_dir('测试一下');
* $r = $vdisk->delete_dir(35647);
* $r = $vdisk->delete_file(123);
* $r = $vdisk->copy_file(219379, 0, '副本.txt');
* $r = $vdisk->move_file(219379, 0, '副本.txt');
* $r = $vdisk->rename_file(219379, '新的新的新的.z');
* $r = $vdisk->rename_dir(3929, '新的新的新的');
* $r = $vdisk->move_dir(3929, "我的图片们", 0);
* @link http://vdisk.me/api
* @param string $app_key 分配给你的appkey
* @param string $app_secret 分配给你的appsecret
if(!($app_key &&
$app_secret))
$this->set_error(-
2, 'app_key or app_secret empty');
$this->appkey =
$app_key;
$this->appsecret =
$app_secret;
$this->set_error(-
1, 'empty');
* @param string $username
* @param string $password
* @param string $app_type 可选参数, 如:$app_type=sinat (注意: 目前支持微博帐号)
public function get_token($username, $password, $app_type=
null)
$this->username =
$username;
$this->password =
$password;
'appkey' =>
$this->appkey,
'signature' =>
hash_hmac('sha256', "account={$username}&appkey={$this->appkey}&password={
$password}&time={
$time}", $this->appsecret, false)
if($app_type) $param['app_type'] =
$app_type;
$data =
$this->_request(URL_GET_TOKEN, $param);
if($data &&
$data['err_code'] ==
0)
$this->token =
$data['data']['token'];
* @param string $token 可选参数
public function keep_token($token=null)
$data =
$this->_request(URL_KEEP_TOKEN, $param);
* @param string $file_path 本地文件真实路径
* @param int $dir_id 目录id
* @param string $cover 可选参数, yes:覆盖; no:如有重名返回错误信息
public function upload_file($file_path, $dir_id, $cover='yes')
'file' => '@'.$file_path,
$data =
$this->_request(URL_UPLOAD_FILE, $param);
* @param string $file_path 本地文件真实路径
* @param int $dir_id 目录id
* @param string $cover 可选参数, yes:覆盖; no:如有重名返回错误信息
* @return array 包含分享后的url
public function upload_share_file($file_path, $dir_id, $cover='yes')
'file' => '@'.$file_path,
$data =
$this->_request(URL_UPLOAD_SHARE_FILE, $param);
* @param string $create_name 目录的名称
* @param int $parent_id 父目录的id
public function create_dir($create_name, $parent_id=0)
'create_name' =>
$create_name,
'parent_id' =>
$parent_id
$data =
$this->_request(URL_CREATE_DIR, $param);
* @param int $dir_id 目录的id
public function get_list($dir_id)
$data =
$this->_request(URL_GET_LIST, $param);
public function get_quota()
$data =
$this->_request(URL_GET_QUOTA, $param);
* @param string $file_name 上传以后的文件名
* @param string $md5 要上传文件的md5值
* @param int $dir_id 目标目录的id, 0为根目录
public function upload_with_sha1($file_name, $sha1, $dir_id=0)
'file_name' =>
$file_name,
$data =
$this->_request(URL_UPLOAD_WITH_SHA1, $param);
public function get_file_info($fid)
$data =
$this->_request(URL_GET_FILE_INFO, $param);
* @param int $dir_id 目录的id
public function delete_dir($dir_id)
$data =
$this->_request(URL_DELETE_DIR, $param);
public function delete_file($fid)
$data =
$this->_request(URL_DELETE_FILE, $param);
* @param int $fid 要复制文件的id
* @param int $to_dir_id 目标目录的id
* @param string $new_name 副本文件的名称
public function copy_file($fid, $to_dir_id, $new_name)
'to_dir_id' =>
$to_dir_id,
$data =
$this->_request(URL_COPY_FILE, $param);
* @param int $fid 要移动文件的id
* @param int $to_dir_id 目标目录的id
* @param string $new_name 移动后的文件名称
public function move_file($fid, $to_dir_id, $new_name)
'to_dir_id' =>
$to_dir_id,
$data =
$this->_request(URL_MOVE_FILE, $param);
* @param string $new_name 新文件名称
public function rename_file($fid, $new_name)
$data =
$this->_request(URL_RENAME_FILE, $param);
* @param int $dir_id 目录的id
* @param string $new_name 新名称
public function rename_dir($dir_id, $new_name)
$data =
$this->_request(URL_RENAME_DIR, $param);
* @param int $dir_id 目录的id
* @param string $new_name 移动后的名称
* @param int $to_parent_id 目标目录的id
public function move_dir($dir_id, $new_name, $to_parent_id)
'to_parent_id' =>
$to_parent_id
$data =
$this->_request(URL_MOVE_DIR, $param);
public function share_file($fid)
$data =
$this->_request(URL_SHARE_FILE, $param);
public function cancel_share_file($fid)
$data =
$this->_request(URL_CANCEL_SHARE_FILE, $param);
* @param int $page_size 每页显示条数
public function recycle_get_list($page=1, $page_size=25)
'page_size' =>
$page_size
$data =
$this->_request(URL_RECYCLE_GET_LIST, $param);
public function truncate_recycle()
$data =
$this->_request(URL_TRUNCATE_RECYCLE_GET, $param);
public function recycle_delete_file($fid)
$data =
$this->_request(URL_RECYCLE_DELETE_FILE, $param);
* @param int $dir_id 目录的id
public function recycle_delete_dir($dir_id)
$data =
$this->_request(URL_RECYCLE_DELETE_DIR, $param);
public function restore_file($fid)
$data =
$this->_request(URL_RECYCLE_RESTORE_FILE, $param);
* @param int $dir_id 目录的id
public function restore_dir($dir_id)
$data =
$this->_request(URL_RECYCLE_RESTORE_DIR, $param);
public function get_dirid_with_path($path)
$data =
$this->_request(URL_GET_DIRID_WITH_PATH, $param);
* @param string $to_email
public function email_share_file($fid, $to_email)
$data =
$this->_request(URL_EMAIL_SHARE_FILE, $param);
* 发送http请求, 兼容SEA的Fetchurl, 私有方法
* @param array $array POST DATA ($array=null为GET方式)
private function _request($url, $array=null)
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $array);
$data = curl_exec($curl);
if($arr = json_decode($data, true))
$this->set_error($arr['err_code'], $arr['err_msg']);
$this->set_error(-
1, 'empty');
* 返回SaeFetchurl object, 保证只new一次
* @return SaeFetchurl object
$this->_f =
new SaeFetchurl();
private function set_error($errno, $error)
Documentation generated on Wed, 03 Sep 2014 10:15:05 +0800 by phpDocumentor 1.4.3