七牛云存储list列出文件简单demo
kevin.Zhu 发布于:2013-10-27 17:15 分类:Php 有 21 人浏览,获得评论 0 条
<?php /* * +---------------------------------------------------------------------- * | 七牛列出文件qn_list_bucket.php* +---------------------------------------------------------------------- * | Author: widuu <admin@widuu.com> * +---------------------------------------------------------------------- * | Time : 09/11/2014 zkf 2016-10-11 * +---------------------------------------------------------------------- * **/ //require('conf.php'); $accessKey = '31hJj890m9GenlAXJ8BAj52mWzJVTeVz5TwYYdcY' ; $secretKey = '8WXM2HyJ9icptVB5ZsX22seNiWJhV8qPAjgLp5AQ' ; $bucket = 'labaimg' ; define('AKEY', $accessKey); define('SKEY', $secretKey); define('BUCKET',$bucket); class Qiniu_List{ private $QINIU_RSF_HOST = 'http://rsf.qbox.me'; private $header = array(); private $url = ''; private static $instance; private function __construct(){} //单态模式实例化 public static function getInstance() { if(!isset(self::$instance)){ $c = __CLASS__; self::$instance = new $c; } return self::$instance; } /** * @param prefix 前缀 * @param marker 标记 * @param limit 限制出现的个数 * **/ public function getUrl($prefix='', $marker='', $limit = 0){ $query = @array('bucket' => BUCKET); if (!empty($prefix)) { $query['prefix'] = $prefix; } if (!empty($marker)) { $query['marker'] = $marker; } if (!empty($limit)) { $query['limit'] = $limit; } $url = '/list?' . http_build_query($query); $this->url = $url; } //获取token private function getToken($url){ $find = array('+', '/'); $replace = array('-', '_'); $sign = hash_hmac('sha1', $this->url."\n", SKEY, true); $result = AKEY . ':' . str_replace($find, $replace, base64_encode($sign)); return $result; } /** * @Description 列出文件 * @return array( * ['marker'] => 标记, * ['item'] => 文件列表数组 * ) **/ public function listFiles(){ $_post_url = trim($this->QINIU_RSF_HOST.$this->url,'\n'); $curl = curl_init (); curl_setopt($curl, CURLOPT_URL, $_post_url); $this->header[] = 'Host: rsf.qbox.me'; $this->header[] = 'Content-Type:application/x-www-form-urlencoded'; $this->header[] = 'Authorization: QBox '.$this->getToken($this->url); curl_setopt ( $curl, CURLOPT_HEADER, false); curl_setopt ( $curl, CURLOPT_HTTPHEADER, $this->header ); curl_setopt ( $curl, CURLOPT_SSL_VERIFYPEER, false); curl_setopt ( $curl, CURLOPT_SSL_VERIFYHOST, false); curl_setopt ( $curl, CURLOPT_POST, true); curl_setopt ( $curl, CURLOPT_RETURNTRANSFER, true); curl_setopt ( $curl, CURLOPT_POSTFIELDS, ""); $result = curl_exec ( $curl ); curl_close ( $curl ); return json_decode($result,true); } } //演示方法 $Qiniu_List = Qiniu_List::getInstance(); $Qiniu_List -> getUrl('','',1000); //echo "<pre>"; $file_list = $Qiniu_List -> listFiles() ; //print_r($file_list); //echo "</pre>"; foreach($file_list['items'] as $_file) { echo $_file['key'] ."\n" ; }
要在命令行执行的话 ,请使用 “qrsctl login username pwd” 先登录。
php qn_list_bucket.php | while read fl; do (qrsctl del labaimg "$fl" & ) ; done