开发者社区> 问答> 正文

PHP实现阿里云存储OSS

首先您需要在阿里云中建立一个帐户。建立好帐户后,在管理控制台获取OSS的密钥。


在使用OSS时,您的PHP页面需要这些密钥值。管理这些信息的一种方法就是将这些密钥值放到您的代码里。
例1: 在PHP代码中存储OSS密钥
//ACCESS_ID
define('OSS_ACCESS_ID', '8k7tbj64zwxpfq50');

//ACCESS_KEY
define('OSS_ACCESS_KEY', 'qvD Gyji7AiMePs8dg=');


这种方法是有效的,但是您必须将代码放入到每一个有需要的PHP文件中。更好的做法是将这些密钥值放入到一个oss.ini文件,该文件类似例2所示:
例2: 在oss.ini中存储OSS密钥
[oss]
access_id="8k7tbj64zwxpfq50"
access_key="qvD Gyji7AiMePs8dg="
[oss2]
access_id="lo90jhgj64zwxpkkjkdui5"
access_key="qvD Gyji7AiMePs8dgasgade"

一个简单的PHP类可以轻松地处理这些值:
例3: 用于检索OSS密钥的简单PHP类:(Credentials.php)
//Simple class to retrieve credentials from an .ini file
class Credentials
{
  var $key_array;
  function Credentials(){
    $this -> key_array = parse_ini_file("oss.ini", true);
  }
  function getCredential($group, $key){
    return $this -> key_array[$group][$key];
  }
}

该类使用PHP parse_ini_file()函数读取.ini文件格式的值。此函数的第一个参数必需,规定要检查的ini文件;第二个参数可选,如果设置为 true,则返回一个多维数组,包括了配置文件中每一节的名称和设置,默认是false。这意味着数组$key_array是一个二维数组。数组键为第一维的oss和oss2(可存放多个OSS帐户),以及第二维的 access_id、access_key等。Credentials类提供了getCredential()方法来从.ini文件检索值。与将凭证硬编码到每一个PHP文件相反,我们使用类似如下所示的代码:
例4: 创建和使用一个Credentials对象
require_once 'oss_php_sdk/sdk.class.php';
require_once '../conf/Credentials.php';
$creds = new Credentials;
$oss_sdk_service = new ALIOSS($creds->getCredential('oss', 'access_id'),$creds->getCredential('oss', 'access_key'));

使用这种方法需要花多一点时间来设置您的代码,但是一旦完成了此项工作,您就在一个位置一次性地定义了您的OSS密钥。如果需要修改它们,您就不必在每个PHP文件中进行修改。
原文地址: PHP实现阿里云存储OSS
参考示例: 阿里云存储图片上传

展开
收起
魏无忌 2012-07-12 00:25:20 13677 0
4 条回答
写回答
取消 提交回答
  • RePHP实现阿里云存储OSS
    不是很懂
    2013-04-26 13:09:08
    赞同 展开评论 打赏
  • RePHP实现阿里云存储OSS
    真不错
    2013-04-15 01:03:38
    赞同 展开评论 打赏
  • RePHP实现阿里云存储OSS
    看不太懂,慢慢来吧!
    2013-04-15 00:29:31
    赞同 展开评论 打赏
  • RePHP实现阿里云存储OSS
    有点意思!
    2013-04-10 20:19:30
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
PHP 2017.北京 全球开发者大会——高可用的PHP 立即下载
PHP安全开发:从白帽角度做安全 立即下载
复杂PHP系统性能瓶颈排查及优化 立即下载