阿里云存储OSS的使用方法介绍-PHP代码
Thinkphp的OSS存储上传类库案例 :http://www.phperblog.cn/1130/
作者:搜狐(视频大爆炸)
开始先提一句,刚开始用oss一直报错,原因php版本。
OSS PHP SDK要求php版本号 >= 5.3.2, 请注意版本的兼容性。
测试环境:httpd-2.2.22、mysql-5.5.32、php-5.3.27。w7(64位)
安装教程:http://www.phperblog.cn/831/
创建Bucket
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
<?php date_default_timezone_set('Asia/Shanghai'); require_once './aliyun/aliyun.php'; use \Aliyun\OSS\OSSClient; $client = OSSClient::factory(array( 'AccessKeyId' => '填上自己的Access Key ID', 'AccessKeySecret' => '填上自己的Access Key Secret', )); // var_dump($client);exit; /*创建Bucket start*/ //注意:可以会提示 “该Bucket已存在或被其他用户占用” 而导致报错、 $client->createBucket(array( 'Bucket' => 'test666zzz', )); /*创建Bucket end*/ |
注意:
创建成功:
上传Object
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
<?php date_default_timezone_set('Asia/Shanghai'); require_once './aliyun/aliyun.php'; use \Aliyun\OSS\OSSClient; $client = OSSClient::factory(array( 'AccessKeyId' => '填上自己的Access Key ID', 'AccessKeySecret' => '填上自己的Access Key Secret', )); // var_dump($client);exit; /*上传Object start*/ // $client->putObject(array( // 'Bucket' => 'test666zzz', // 'Key' => 'test', // 'Content' => 'This is my content', // )); //注意:Content 为Object的实际内容,它可以为字符串或者是资源类型(resource),当 Content 类型为resource时,你必须指定Object的大小(以字节为单位)。 $client->putObject(array( 'Bucket' => 'test666zzz', 'Key' => 'test2', 'Content' => fopen('www.phperblog.cn.txt', 'r'), 'ContentLength' => filesize('www.phperblog.cn.txt'), )); /*上传Object end*/ |
获取object列表
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
<?php date_default_timezone_set('Asia/Shanghai'); require_once './aliyun/aliyun.php'; use \Aliyun\OSS\OSSClient; $client = OSSClient::factory(array( 'AccessKeyId' => '填上自己的Access Key ID', 'AccessKeySecret' => '填上自己的Access Key Secret', )); // var_dump($client);exit; /*获取Object列表 start*/ $objectListing = $client->listObjects(array( 'Bucket' => 'test666zzz', )); foreach ($objectListing->getObjectSummarys() as $objectSummary) { echo $objectSummary->getKey(); } /*获取Object列表 end*/ |
下载Object
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
<?php date_default_timezone_set('Asia/Shanghai'); require_once './aliyun/aliyun.php'; use \Aliyun\OSS\OSSClient; $client = OSSClient::factory(array( 'AccessKeyId' => '填上自己的Access Key ID', 'AccessKeySecret' => '填上自己的Access Key Secret', )); // var_dump($client);exit; /*下载Object start*/ // $object = $client->getObject(array( // 'Bucket' => 'test666zzz', // 'Key' => 'test2', // )); //echo (string)$object; //下面为文件的具体详细信息 $object = $client->getObject(array( 'Bucket' => 'test666zzz', 'Key' => 'test2', )); echo "Key: " . $object->getKey() . "\n"; echo "Update Date: " . $object->getLastModified()->getTimestamp() . "\n"; echo "Content: \n"; echo stream_get_contents($object->getObjectContent()); // Print object's content. /*下载Object end*/ |
内容就是为刚上传的文件的内容。
处理异常
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
<?php date_default_timezone_set('Asia/Shanghai'); require_once './aliyun/aliyun.php'; use \Aliyun\OSS\OSSClient; $client = OSSClient::factory(array( 'AccessKeyId' => '填上自己的Access Key ID', 'AccessKeySecret' => '填上自己的Access Key Secret', )); // var_dump($client);exit; /*处理异常 start*/ try { $client->listObjects(array( 'Bucket' => 'bucket-non-exist', )); } catch (\Aliyun\OSS\Exceptions\OSSException $ex) { echo "Error: " . $ex->getErrorCode() . "\n"; } catch (\Aliyun\Common\Exceptions\ClientException $ex) { echo "ClientError: " . $ex->getMessage() . "\n"; } //注意:当我们执行一些错误的操作,比如试图获取一个不存在的bucket的Object列表的时候,SDK会抛出异常;由于网络错误等原因,client也有可能抛出异常。你可以catch这些异常: /*处理异常 end*/ |
OSS入门就介绍到这,如果有什么问题可以联系笔者。
最后测试了下图片上传。
文件代码:百度网盘
作者:搜狐(视频大爆炸)
- Dedecms频道,列表页,内容页中调用全站最新文章
- 常见邮件服务器(接收服务器和发送邮件服务器)企业邮局域名地址
Pingback: 如何用云存储和CDN加速网站图片视频、阿里云OSS的使用(转) | phper `blog