首页 > 资源分享 > 阿里云获取OSS文件URL签名地址

阿里云获取OSS文件URL签名地址

时间:2025-07-02浏览次数:6

安装阿里云OSS PHP SDK

在项目根目录下运行以下命令安装阿里云OSS PHP SDK:

composer require aliyuncs/oss-sdk-php

配置阿里云OSS

在ThinkPHP5.0项目中,可以在配置文件中添加阿里云OSS的配置信息,例如在config.php文件中添加以下内容:

return [
    // 其他配置...
    'oss' => [
        'accessKeyId' => '你的AccessKeyId',
        'accessKeySecret' => '你的AccessKeySecret',
        'bucket' => '你的Bucket名称',
        'endpoint' => 'Bucket所在地域对应的Endpoint,例如oss-cn-hangzhou.aliyuncs.com',
    ],
];

生成URL签名地址

在控制器中,使用以下代码生成文件的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);
        }
    }
}