laravel 使用oss存储对象

\Illuminate\Support\Facades\Storage::disk('oss');
$file = \Illuminate\Support\Facades\Storage::putFile('public',request()->file);
$file = \Illuminate\Support\Facades\Storage::url($file);

这是我的上传代码

'oss' => [
'driver' => 'oss',
'access_id' => '我的key',
'access_key' => '我的key',
'bucket' => 'qudongit',
'endpoint' => 'https://oss-cn-beijing.aliyuncs.com', // OSS 外网节点或自定义外部域名
//'endpoint_internal' => '<internal endpoint [OSS内网节点] 如:oss-cn-shenzhen-internal.aliyuncs.com>', // v2.0.4 新增配置属性,如果为空,则默认使用 endpoint 配置(由于内网上传有点小问题未解决,请大家暂时不要使用内网节点上传,正在与阿里技术沟通中)
//'cdnDomain' => '<CDN domain, cdn域名>', // 如果isCName为true, getUrl会判断cdnDomain是否设定来决定返回的url,如果cdnDomain未设置,则使用endpoint来生成url,否则使用cdn
'ssl' => true, // true to use 'https://' and false to use 'http://'. default is false,
'isCName' => false, // 是否使用自定义域名,true: 则Storage.url()会使用自定义的cdn或域名生成文件url, false: 则使用外部节点生成url
'debug' => false
],

这是我的oss配置,

$file = \Illuminate\Support\Facades\Storage::url($file);

这个函数 返回的是一个http路径回来,如何让他返回一个https的网络路径,我申请了一个https证书,如果网页中有http资源就出报证书不安全错误,访问体验不太好

上传的文件使用https也能访问到,这个功能主要是供ueditor编辑使用的我安装了一个laravel ueditor composer包他直接使用oss配置,但是上传图片文件得到是http文件路径地址我就很困恼

1 条回复

  1. 学院君 学院君 says:

    这个url方法的源码,看下你的代码执行到哪个分支了:

    public function url($path)
        {
            $adapter = $this->driver->getAdapter();
    
            if ($adapter instanceof CachedAdapter) {
                $adapter = $adapter->getAdapter();
            }
    
            if (method_exists($adapter, 'getUrl')) {
                return $adapter->getUrl($path);
            } elseif (method_exists($this->driver, 'getUrl')) {
                return $this->driver->getUrl($path);
            } elseif ($adapter instanceof AwsS3Adapter) {
                return $this->getAwsUrl($adapter, $path);
            } elseif ($adapter instanceof RackspaceAdapter) {
                return $this->getRackspaceUrl($adapter, $path);
            } elseif ($adapter instanceof LocalAdapter) {
                return $this->getLocalUrl($path);
            } else {
                throw new RuntimeException('This driver does not support retrieving URLs.');
            }
        }

登录后才能进行评论,立即登录?