生成签名
第一步:点击下载代码
第二步
创建bucket
第三步设置跨域
第四步:打开/Application/Common/Conf/config.php,配置文件参数到阿里云取出
代码
'ALIOSS_CONFIG'=> array(
'KEY_ID'=>'',//阿里云oss key_id
'KEY_SECRET'=>'',//阿里云oss key_secret
'END_POINT'=>'',//阿里云oss endpoint
'BUCKET'=>'',// bucken名称
),
第五步:将文件粘贴到thinkphp目录下面
将下载好的代码找到/php/get.php,里面有个gmt_iso8601函数,将其代码复制到/Application/Common/Common/function.php
function gmt_iso8601($time) {
$dtStr = date("c", $time);
$mydatetime = new DateTime($dtStr);
$expiration = $mydatetime->format(DateTime::ISO8601);
$pos = strpos($expiration, '+');
$expiration = substr($expiration, 0, $pos);
return $expiration."Z";
}
创建一个控制器文件,创建一个方法,将/php/get.php中除了gmt_iso8601函数的其他代码粘贴进去
将其内部参数修改成自己的,将变量$id设成AccessKeyId,$key设置成AccessKeySecret,$host设置成 bucket+endpoint。
回调
第一步:
将上述生成签名的$callback_body内的参数修改一下,callbackUlr设置成自己写的一个回调方法路径,callbackHost写成域名(可以不写),filename设置自己想要oss返回给我们的参数,有文件名称,大小,宽和高,callbackBodyType设置请求头
第二步:
下载回调函数的demo
第三步:
将下载好的callback.php文件内容粘贴到你创建好的回调方法内
阿里云oss权限设置成私有后如何访问
第一步:将一下代码复制到/Application/Common/Common/function.php下面
/**
* 生成GetObject的签名url,主要用于私有权限下的读访问控制
*
* @param $ossClient OssClient OSSClient实例
* @param $bucket string bucket名称
* @return null
*/
function getSignedUrlForGettingObject($object)
{
import('Vendor.oss_php_sdk_20140625.lib.requestcore.requestcore');
$ossClient = new_oss();
$bucket = C('ALIOSS_CONFIG.BUCKET');
// $object = "test/test-signature-test-upload-and-download.txt";
$timeout = 3600; // URL的有效期是3600秒
try{
$signedUrl = $ossClient->signUrl($bucket, $object, $timeout);
} catch(OssException $e) {
printf(__FUNCTION__ . ": FAILED\n");
printf($e->getMessage() . "\n");
return;
}
$url = __FUNCTION__ . ": signedUrl: " . $signedUrl. "\n";
return $url;
print(__FUNCTION__ . ": signedUrl: " . $signedUrl. "\n");
/**
* 可以类似的代码来访问签名的URL,也可以输入到浏览器中去访问
*/
$request = new RequestCore($signedUrl);
$request->set_method('GET');
$request->send_request();
$res = new ResponseCore($request->get_response_header(), $request->get_response_body(), $request->get_response_code());
if ($res->isOK()) {
print(__FUNCTION__ . ": OK" . "\n");
} else {
print(__FUNCTION__ . ": FAILED" . "\n");
};