You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ELF d3bdb1eaa0 initial 5 years ago
..
samples initial 5 years ago
src/OSS initial 5 years ago
tests/OSS/Tests initial 5 years ago
.coveralls.yml initial 5 years ago
.gitignore initial 5 years ago
.travis.yml initial 5 years ago
CHANGELOG.md initial 5 years ago
LICENSE.md initial 5 years ago
README.md initial 5 years ago
autoload.php initial 5 years ago
build-phar.sh initial 5 years ago
composer.json initial 5 years ago
index.php initial 5 years ago
phpunit.xml initial 5 years ago

README.md

Aliyun OSS SDK for PHP

Latest Stable Version Build Status Coverage Status

概述

阿里云对象存储Object Storage Service简称OSS是阿里云对外提供的海量、安全、低成本、高可靠的云存储服务。用户可以通过调用API在任何应用、任何时间、任何地点上传和下载数据也可以通过用户Web控制台对数据进行简单的管理。OSS适合存放任意文件类型适合各种网站、开发企业及开发者使用。

运行环境

  • PHP 5.3+
  • cURL extension

提示:

  • Ubuntu下可以使用apt-get包管理器安装php的cURL扩展 sudo apt-get install php5-curl

安装方法

  1. 如果您通过composer管理您的项目依赖可以在你的项目根目录运行

     $ composer require aliyuncs/oss-sdk-php
    

    或者在你的composer.json中声明对Aliyun OSS SDK for PHP的依赖

     "require": {
         "aliyuncs/oss-sdk-php": "~2.0"
     }
    

    然后通过composer install安装依赖。composer安装完成后在您的PHP代码中引入依赖即可

     require_once __DIR__ . '/vendor/autoload.php';
    
  2. 您也可以直接下载已经打包好的phar文件,然后在你 的代码中引入这个文件即可:

     require_once '/path/to/oss-sdk-php.phar';
    
  3. 下载SDK源码在您的代码中引入SDK目录下的autoload.php文件:

     require_once '/path/to/oss-sdk/autoload.php';
    

快速使用

常用类

类名 解释
OSS\OssClient OSS客户端类用户通过OssClient的实例调用接口
OSS\Core\OssException OSS异常类用户在使用的过程中只需要注意这个异常

OssClient初始化

SDK的OSS操作通过OssClient类完成的下面代码创建一个OssClient对象:

<?php
$accessKeyId = "<您从OSS获得的AccessKeyId>"; ;
$accessKeySecret = "<您从OSS获得的AccessKeySecret>";
$endpoint = "<您选定的OSS数据中心访问域名例如oss-cn-hangzhou.aliyuncs.com>";
try {
    $ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint);
} catch (OssException $e) {
    print $e->getMessage();
}

文件操作

文件(又称对象,Object)是OSS中最基本的数据单元您可以把它简单地理解为文件用下面代码可以实现一个Object的上传

<?php
$bucket = "<您使用的Bucket名字注意命名规范>";
$object = "<您使用的Object名字注意命名规范>";
$content = "Hello, OSS!"; // 上传的文件内容
try {
    $ossClient->putObject($bucket, $object, $content);
} catch (OssException $e) {
    print $e->getMessage();
}

存储空间操作

存储空间(又称Bucket)是一个用户用来管理所存储Object的存储空间,对于用户来说是一个管理Object的单元所有的Object都必须隶属于某个Bucket。您可以按照下面的代码新建一个Bucket

<?php
$bucket = "<您使用的Bucket名字注意命名规范>";
try {
    $ossClient->createBucket($bucket);
} catch (OssException $e) {
    print $e->getMessage();
}

返回结果处理

OssClient提供的接口返回返回数据分为两种

  • PutDelete类接口接口返回null如果没有OssException即可认为操作成功
  • GetList类接口接口返回对应的数据如果没有OssException即可认为操作成功举个例子
<?php
$bucketListInfo = $ossClient->listBuckets();
$bucketList = $bucketListInfo->getBucketList();
foreach($bucketList as $bucket) {
    print($bucket->getLocation() . "\t" . $bucket->getName() . "\t" . $bucket->getCreatedate() . "\n");
}

上面代码中的$bucketListInfo的数据类型是 OSS\Model\BucketListInfo

运行Sample程序

  1. 修改 samples/Config.php 补充配置信息
  2. 执行 cd samples/ && php RunAll.php

运行单元测试

  1. 执行composer install下载依赖的库

  2. 设置环境变量

     export OSS_ACCESS_KEY_ID=access-key-id
     export OSS_ACCESS_KEY_SECRET=access-key-secret
     export OSS_ENDPOINT=endpoint
     export OSS_BUCKET=bucket-name
    
  3. 执行 php vendor/bin/phpunit

贡献代码

  1. 开发流程参考:https://github.com/rockuw/oss-sdk-status#development-oss-members-only
  2. 提交代码后确保travis CI是PASS的
  3. 每发布一个新的版本:
  • 运行build-phar.sh生成相应的phar包需要安装phar-composer)
  • Release页面发布一个版本
  • 将生成的phar包上传到相应的Release下面

联系我们