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 协议》,转载必须注明作者和本文链接
阿里云可以使用
s3
方案,官方是支持的, composer安装aliyuncs/oss-sdk-php
配置文件修改