laravel 10 以上 阿里云对象存储扩展包

laravel 10 以上 阿里云对象存储扩展包

第一步:安装扩展包

composer require lonelywalkersource/laravel-filesystem-oss

第二步:更新 config/filesystems.php

<?php

return [
   'disks' => [
        //...
        'oss' => [
            'driver' => 'oss',
            'access_key' => env('OSS_ACCESS_KEY_ID'),
            'secret_key' => env('OSS_ACCESS_KEY_SECRET'),
            'bucket' => env('OSS_BUCKET'),
            'endpoint' => env('OSS_ENDPOINT'), // OSS 外网节点或自定义外部域名
            'cnd_domain' => env('OSS_CDN_DOMAIN'), // 如果isCName为true, getUrl会判断cdnDomain是否设定来决定返回的url,如果cdnDomain未设置,则使用endpoint来生成url,否则使用cdn
            'ssl' => false, // true to use 'https://' and false to use 'http://'. default is false,
            'is_cname' => false, // 是否使用自定义域名,true: 则Storage.url()会使用自定义的cdn或域名生成文件url, false: 则使用外部节点生成url
            'debug' => false,
            'upload_prefix' => env('OSS_UPLOAD_PREFIX','')
        ],
        //...
    ]
];

第三步:配置 env

FILESYSTEM_DISK=oss
OSS_ACCESS_KEY_ID=
OSS_ACCESS_KEY_SECRET=
OSS_BUCKET=
OSS_ENDPOINT=
OSS_CDN_DOMAIN=
OSS_UPLOAD_PREFIX=

使用

$disk = Storage::disk('oss');

// create a file
$disk->put('avatars/filename.jpg', $fileContents);

// get timestamp
$time = $disk->lastModified('file1.jpg');

// copy a file
$disk->copy('old/file1.jpg', 'new/file1.jpg');

// move a file
$disk->move('old/file1.jpg', 'new/file1.jpg');

// get file contents
$contents = $disk->read('folder/my_file.txt');


// get file url
$url = $disk->url('folder/my_file.txt');
$url = $disk->getAdapter()->getUrl('folder/my_file.txt');

// get private url
$url = $disk->temporaryUrl('folder/my_file.txt');
$url = $disk->getAdapter()->getTemporaryUrl('folder/my_file.txt');
本作品采用《CC 协议》,转载必须注明作者和本文链接
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
讨论数量: 2

阿里云可以使用 s3 方案,官方是支持的, composer安装aliyuncs/oss-sdk-php

配置文件修改

'oss' => [
            'driver' => 's3',
            'key' => env('OSS_ACCESS_KEY_ID'),
            'secret' => env('OSS_ACCESS_KEY_SECRET'),
            'region' => env('OSS_REGION'), // 可选,如果您需要指定区域
            'bucket' => env('OSS_BUCKET'),
            'endpoint' => env('OSS_ENDPOINT'),
            'url' => env('OSS_URL'),
            'visibility' => 'public', // 可选,默认为 public
],
1个月前 评论
LnSonG (楼主) 1个月前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!