1.SDK名称版本:aws-php-sdk-v2
由于最新版本的cos已经完全兼容s3,那么用aws的sdk来使用cos的服务也变成了一件可行的事情,这里我来分享一下如何通过aws-php-sdk来使用cos的服务
2.使用教程
1.获取aws-php-sdk-v2
下载并安装aws-php-sdk-v2。
具体步骤详见官网文档:
http://docs.aws.amazon.com/aws-sdk-php/v2/guide/quick-start.html
使用composer安装即可
{
"require": {
"aws/aws-sdk-php": "2.*"
}
}
2.使用示例
配置
新建一个config.php的文件,内容如下
<?php
require '/path/to/vendor/autoload.php';
use Aws\S3\S3Signature;
return array(
'includes' => array('_aws'),
'services' => array(
'default_settings' => array(
'params' => array(
'key' => 'your access id',
'secret' => 'your access key',
'region' => 'cn-north',
'endpoint'=>'http://cn-north.myqcloud.com/',
'host' => 'cn-north.myqcloud.com',
'signature' => new S3Signature(),
)
)
)
);
常见功能使用(上传、下载、删除...)
<?php
#填写vendor的路径
require '/path/to/vendor/autoload.php';
use Aws\Common\Aws\S3Client;
use Aws\S3\Exception\S3Exception;
use Aws\Common\Aws;
#调用配置文件
$aws = Aws::factory('config.php');
$s3Client = $aws->get('s3');
#创建bucket
/*
Bucket 为"<bucket>-<appid>"
*/
$result = $s3Client->createBucket(array('Bucket' => 'lewzylu1120-1252448703'));
#删除bucket
/*
Bucket 为"<bucket>-<appid>"
*/
$result = $s3Client->deleteBucket(array('Bucket' => 'lewzylu1120-1252448703'));
#get bucket
/*
Bucket 为"<bucket>-<appid>"
*/
$result = $s3Client->getBucket(array('Bucket' => 'lewzylu1120-1252448703'));
#上传文件
/*
Bucket 为"<bucket>-<appid>"
Key 为文件名
Body 为文件内容
*/
$result = $s3Client->putObject(array(
'Bucket' => 'lewzylu1120-1252448703',
'Key' => '11.txt',
'Body'=> '123213123'
));
#分块上传
$file = file_get_contents(object_path);
$s3Client->upload(
$bucket = 'lewzylu05-1252448703',
$key="999.txt",
$body=$file
);
#下载文件
/*
Bucket 为"<bucket>-<appid>"
Key 为文件名
*/
$result = $s3Client->getObject(array(
'Bucket' => 'lewzylu1120-1252448703',
'Key' => '11.txt',
));
/*
更多操作详见s3官方文档
*/