现在的位置: 首页 > 综合 > 正文

阿里云OSS开放云存储小结

2014年08月29日 ⁄ 综合 ⁄ 共 2386字 ⁄ 字号 评论关闭

阿里云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;

//主要就这些,用他的例子,和看类代码。

抱歉!评论已关闭.