阿里云OSS开放云存储
下载PHP SDK包
注册OSS会员,并增加BUCKET,生成KEY.
SDK根目录,conf.inc.php配置文件填写上KEY
运行demo/tutorial.php案例文件,你就明白一切了。
查看该文件源码
/** * 加载sdk包以及错误代码包 */ require_once '../sdk.class.php'; 主要用的这个类,继续往下看,调用实例。 /** * 测试程序 */ //upload_by_file($oss_sdk_service); //这些,一个一个去测试看是什么功能吧,从字面上也能大概了解到意思。比如下面这个get_object方法 get_object($oss_sdk_service); echo('==================='); /*** try{ get_service($oss_sdk_service); create_bucket($oss_sdk_service); delete_bucket($oss_sdk_service); set_bucket_acl($oss_sdk_service); get_bucket_acl($oss_sdk_service); list_object($oss_sdk_service); create_directory($oss_sdk_service); upload_by_content($oss_sdk_service); upload_by_file($oss_sdk_service); copy_object($oss_sdk_service); get_object_meta($oss_sdk_service); delete_object($oss_sdk_service); delete_objects($oss_sdk_service); get_object($oss_sdk_service); is_object_exist($oss_sdk_service); upload_by_multi_part($oss_sdk_service); upload_by_dir($oss_sdk_service); batch_upload_file($oss_sdk_service); get_sign_url($oss_sdk_service); }catch (Exception $ex){ die($ex->getMessage()); } */ //获取object function get_object($obj){ $bucket = 'bb'; //bucket 名称 $object = 'vv'; //对象名称 $options = array( //这是类里面的属性,可以改成其他的,ALIOSS::OSS_FILE_DOWNLOAD 是下载object,const OSS_BODY = 'body';是读取内容object。 ALIOSS::OSS_FILE_DOWNLOAD => "d:\\".urlencode($object)."", //ALIOSS::OSS_CONTENT_TYPE => 'txt/html', ); $response = $obj->get_object($bucket,$object,$options); _format($response); }
这个地方调用列表数据也是不错的,主要是他这个options选项设置。他的分页其实是以文件名KEY来分页的,不同于传统的分页,这里要分析好。
function get_list() { $this->model = 'admin_oss'; echo('-----------------------<br>'); $limit = 5; $options = array( 'delimiter' => '/', 'prefix' => '', 'max-keys' => 5, 'marker' => '', ); //bucket $bucket = isset($_GET['bucket']) ? $_GET['bucket'] : $this->bucket; if(!$bucket) { echo('bucket为空!');exit; } $this->bucket = $bucket; //bucket oo if(true): //循环获取所有文件数据 $contents = 0;//当前文件数 $counts = 0;//总数 $i=0; do { $i++; $contents = 0; $list_object = $this->list_object($this->oss_sdk_service, $options);//object列表 $list_object = $this->get_body($list_object); if(isset($list_object['Contents'])): $contents_ary = $list_object['Contents']; //保存到数据库 $this->add_db_Objects($contents_ary); $contents = count($contents_ary); $last_contents = $contents_ary[$contents-1]; if($last_contents): $options['marker'] = $last_contents->Key; //echo('<br>marker::'.$options['marker'].'<br>'); endif; $counts = $counts+$contents;//总数 endif; //echo($i.'. '.$contents.'<br>----<br>'); } while($contents); echo('数据存入完成!文件总数为:'.$counts); endif;
//主要就这些,用他的例子,和看类代码。