本文简单介绍下,php-oss的使用方法,如果对阿里云OSS对象存储还不太了解,请先查看 如何使用阿里云Oss云存储?
传送门地址: https://cksite.cn/article/121.html
1、环境准备
PHP 5.3+:
--您可以通过php -v命令查看当前的PHP版本。
cURL 扩展:
--您可以通过php -m命令查看cURL扩展是否已经安装好。
说明:
--Ubuntu系统中,您可以使用apt-get包管理器安装PHP的cURL扩展 sudo apt-get install php-curl。
--CentOS系统中,您可以使用yum包管理器安装PHP的cURL扩展 sudo yum install php-curl。
--Windows系统中,PHP和PHP cURL扩展的安装方法请参见 Windows下编译使用阿里云 OSS PHP SDK。
2、SDK下载
--GitHub地址:GitHub
--版本迭代:Releases
--SDK API文档:API Doc
建议您使用最新版本的SDK。2.0.0
版本以下的SDK文档可从此处下载。
3、安装
composer方式
composer方式安装SDK的步骤如下:
1)、在项目的根目录运行composer require aliyuncs/oss-sdk-php,或者在您的composer.json中声明对阿里云 OSS SDK for PHP的依赖:
"require": { "aliyuncs/oss-sdk-php": "~2.0" }
2)、通过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方式
phar方式安装SDK的步骤如下:
1)、在发布页面中选择相应的版本并下载打包好的phar文件。
2)、在代码中引入phar文件
require_once '/path/to/oss-sdk-php.phar';
源码方式
源码方式安装SDK的步骤如下:
1)、在发布页面中选择相应版本并下载打包好的zip文件。
2)、解压后的根目录中包含一个autoload.php文件,在代码中引入此文件:
require_once '/path/to/oss-sdk/autoload.php';
4、示例程序
您可以通过以下步骤运行示例程序:
1)、解压下载的SDK包。
2)、修改samples目录中的Config.php文件:
OSS_ACCESS_ID是您从OSS获得的AccessKeyId。
OSS_ACCESS_KEY是您从OSS获得的AccessKeySecret。
OSS_ENDPOINT是您选定的OSS数据中心访问域名,如 http://oss-cn-hangzhou.aliyuncs.com。
OSS_TEST_BUCKET是您运行示例程序所使用的Bucket。示例程序会在这个Bucket中创建一些文件。
3)、在samples目录中执行 php RunAll.php, 也可以单独运行某个示例文件。
示例程序包含以下内容:
示例文件 | 示例内容 |
---|---|
Object.php | 展示了Object操作的用法,包括上传、下载、复制、删除、列举、元信息等 |
MultipartUpload.php | 展示了大文件上传、分片上传的用法 |
Signature.php | 展示了URL签名授权访问的用法 |
Callback.php | 展示了上传回调的用法 |
Image.php | 展示了图片处理的用法 |
LiveChannel.php | 展示了LiveChannel的用法 |
Bucket.php | 展示了Bucket管理操作的用法,包括创建、删除、列举、权限等 |
BucketLifecycle.php | 展示了如何设置/读取/清除Bucket的生命周期 |
BucketLogging.php | 展示了如何设置/读取/清除Bucket的日志 |
BucketReferer.php | 展示了如何设置/读取/清除Bucket的防盗链 |
BucketWebsite.php | 展示了如何设置/读取/清除Bucket的静态网站托管 |
BucketCors.php | 展示了如何设置/读取/清除Bucket的跨域资源访问 |
在这里不适用框架,抛砖引玉 单独跑、测试一下:
1、wamp环境下 使用 composer 安装oss-php,即可看到aliyunOss下目录结构:
. ├── composer.json ├── composer.lock └── vendor
2、新建 Common.php ,拷贝 vendor\aliyuncs\oss-sdk-php\samplesCommon.php 到根目录,
if (is_file(__DIR__ . '/../autoload.php')) { require_once __DIR__ . '/../autoload.php'; } if (is_file(__DIR__ . '/../vendor/autoload.php')) { require_once __DIR__ . '/../vendor/autoload.php'; } 改为: if (is_file(__DIR__ . '/vendor/autoload.php')) { require_once __DIR__ . '/vendor/autoload.php'; }
3、新建配置文件 Config.php,拷贝 vendor\aliyuncs\oss-sdk-php\samples\Config.php 到根目录,相应更改下以下阿里云拿到的的值
const OSS_ACCESS_ID = 'XXXXXXXXX'; const OSS_ACCESS_KEY = 'XXXXXXXXX'; const OSS_ENDPOINT = 'XXXXXXXXX'; const OSS_TEST_BUCKET = 'XXXXXXXXX';// 之前设置的Bucket name 如果想在该Bucket里面同一个文件加下,可以增加如下设置 const OSS_DIR = '';//
4、新建一个 index.php文件。
<?php require_once __DIR__ . '/Common.php'; use OSS\OssClient; use OSS\Core\OssException; $bucket = Common::getBucketName(); $ossClient = Common::getOssClient(); var_dump($bucket); var_dump($ossClient); //1、上传本文件到OSS //$result = $ossClient->uploadFile($bucket, "c.file", __FILE__); //2、上传图片到OSS /* $result = $ossClient->uploadFile($bucket, "example.jpg", 'example.jpg'); Common::println("example is created"); Common::println($result['x-oss-request-id']); Common::println($result['etag']); Common::println($result['content-md5']); Common::println($result['body']); */ //3、判断文件是否存在 $doesExist = $ossClient->doesObjectExist($bucket, "example.jpg"); Common::println("file c.file.copy exist? " . ($doesExist ? "yes" : "no")); //4、返回上传文件的url 访问链接地址 $oss_dir = Config::OSS_DIR; $dir = empty($oss_dir) ? $oss_dir : $oss_dir ."/";//Oss上传目录 $paths ="http://". Config::OSS_TEST_BUCKET. "." .Config::OSS_ENDPOINT ."/". $dir;//如果需要全路径,用此变量 var_dump($paths .'example.jpg' );
注意:后期不用的话,可删去 Common 类的 输出打印。
更多功能可查看 vendor\aliyuncs\oss-sdk-php\samples 文件夹下的例子。
使用阿里云提供的 常用工具,我们就可以动态的查看 oss操作处理。这里我使用的 是ossbrowserOSS官方提供的图形化的管理工具。
效果如果:
更多工具查看: https://help.aliyun.com/document_detail/44075.html?spm=a2c4g.11186623.6.1061.BTS9PB
本文为崔凯原创文章,转载无需和我联系,但请注明来自冷暖自知一抹茶ckhttp://www.cksite.cn