第一步安装
环境准备
OSS PHP SDK适用于PHP 5.3以上版本。本文以PHP 5.6.22为例。
安装环境
您需要安装PHP和cURL扩展:
在Windows系统中,请参见Windows下编译使用阿里云 OSS PHP SDK来安装PHP和cURL扩展。在Windows环境中,如果提示找不到指定模块,请在php.ini文件中指定extension_dir为C:/Windows/System32/。
在Ubuntu系统中,请使用apt-get包管理器安装PHP的cURL扩展 sudo
#apt-get install php-curl。
在CentOS系统中,请使用yum包管理器安装PHP的cURL扩展 sudo
#yum install php-curl。
查看版本
通过php -v命令查看当前的PHP版本。
通过php -m命令查看cURL扩展是否已经安装好。
下载SDK
更多信息请参见OSS API文档。
说明 建议您使用最新版本的SDK。OSS
PHP SDK 2.0.0以下版本的文档请从此处下载。
安装SDK
您可以使用以下三种方式安装SDK:
composer方式
在项目的根目录运行composer
require aliyuncs/oss-sdk-php,或者在composer.json文件中添加依赖关系如下:
"require": {
"aliyuncs/oss-sdk-php": "~2.x.x"
}
运行composer install,安装依赖。安装完成后,目录结构如下:
├── app.php
├── composer.json
├── composer.lock
└── vendor
其中app.php是您的应用程序,vendor/目录下包含了所依赖的库。您需要在app.php中添加依赖关系如下:
require_once __DIR__ .'/vendor/autoload.php';
说明
如果您的项目中已经引用过autoload.php,则添加了SDK的依赖关系之后,不需要再次引入。
如果使用composer出现网络错误,可以使用composer中国区的镜像源。方法是在命令行执行 composer config -g repositories.packagist
composer http://packagist.phpcomposer.com。
phar方式
在GitHub中选择相应的版本并下载打包好的phar文件。
在代码中引入phar文件:
require_once '/path/to/oss-sdk-php.phar';
源码方式
在GitHub中选择相应版本并下载打包好的zip文件。
解压后的根目录中包含一个autoload.php文件,在代码中引入此文件:
require_once '/path/to/oss-sdk/autoload.php';
第二步 手动创建储存空间
1、 登录 OSS 管理控制台。
2. 、 如果目前 Bucket 列表为空,单击左侧存储空间列表中的创建 Bucket;若已创建过 Bucket,则单击左侧存储空间列表中的新增按钮+,或单击页面右上方的创建 Bucket。
3、在创建 Bucket 对话框配置 Bucket 参数。如下图:
第三步
文件上传
以下上传类用于上传文件到OSS:根据个人配置简单修改下可用
最后可能在项目开发中会遇到大文件上传缓慢问题,所以阿里云官方提供了几个专门解决大文件上传的工具具体可以看官方文档https://help.aliyun.com/document_detail/44075.html?spm=a2c4g.11186623.6.693.646c448aMbGxqD在这不说太多
我们项目用到的是:命令行工具ossutil
快速安装
根据您的操作系统选择对应版本的软件下载并配置ossutil。
Linux系统(以64位系统为例)
下载工具:
wget http://gosspublic.alicdn.com/ossutil/1.6.9/ossutil64
修改文件执行权限:
chmod 755 ossutil64
使用交互式配置生成配置文件:
./ossutil64 config
请输入配置文件名,文件名可以带路径(默认为:/home/user/.ossutilconfig,回车将使用默认路径。如果用户设置为其它路径,在使用命令时需要将--config-file选项设置为该路径):
未输入配置文件路径,将使用默认配置文件:/home/user/.ossutilconfig。
对于下述配置,回车将跳过相关配置项的设置,配置项的具体含义,请使用"help
config"命令查看。
请输入endpoint:http://oss-cn-shenzhen.aliyuncs.com
请输入accessKeyID:yourAccessKeyID
请输入accessKeySecret:yourAccessKeySecret
请输入stsToken:
endpoint:填写Bucket所在地域的域名信息,可参考访问域名和数据中心。
accessKeyID:查看方式请参考创建AccessKey。
accessKeySecret:查看方式请参考创建AccessKey。
stsToken:非必配项,若采用STS临时授权方式访问OSS需要配置该项,否则置空即可。stsToken生成方式参考临时访问凭证。
在php可以用以为方法调用:
//内网 oss-cn-shenzhen-internal.aliyuncs.com
public function doossutil($localPath,$ossPath) {//方法记得添加节点权限
$command = ROOT_PATH. 'public/ossutil64 cp -rf '. ROOT_PATH. 'public/'. $localPath. ' oss://yr720/'. $ossPath.' -c /root/.ossutilconfig';
//./ossutil64 ls oss://examplebucket -c /home/config
exec($command,$output);
$res = strstr($output[0],':',true);
if($res == 'Error') {
return false;
}else {
return true;
}
}