阿里云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;
//主要就这些,用他的例子,和看类代码。