在项目根目录下运行以下命令安装阿里云OSS PHP SDK:
composer require aliyuncs/oss-sdk-php
在ThinkPHP5.0项目中,可以在配置文件中添加阿里云OSS的配置信息,例如在config.php文件中添加以下内容:
return [ // 其他配置... 'oss' => [ 'accessKeyId' => '你的AccessKeyId', 'accessKeySecret' => '你的AccessKeySecret', 'bucket' => '你的Bucket名称', 'endpoint' => 'Bucket所在地域对应的Endpoint,例如oss-cn-hangzhou.aliyuncs.com', ], ];
在控制器中,使用以下代码生成文件的URL签名地址:
use think\Controller;
use OSS\OssClient;
use OSS\Core\OssException;
class OssController extends Controller
{
public function getSignatureUrl()
{
try {
// 获取配置信息
$config = config('oss');
$accessKeyId = $config['accessKeyId'];
$accessKeySecret = $config['accessKeySecret'];
$bucket = $config['bucket'];
$endpoint = 'https://'.$config['endpoint']; // 确保Endpoint是HTTPS
// 创建OssClient实例
$ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint);
// 设置文件名和过期时间
$object = 'default.zip'; // 文件名
$timeout = 3600; // 过期时间为1小时
// 生成预签名URL,并指定使用HTTPS
$signedUrl = $ossClient->signUrl($bucket, $object, $timeout, ['Scheme' => 'https']);
// 返回签名URL
return json(['url' => $signedUrl]);
} catch (OssException $e) {
// 处理异常
return json(['error' => $e->getMessage()], 500);
}
}
}