Skip to content

Commit d8ca10b

Browse files
committed
feat(support): laravel 9
1 parent ae3cd6f commit d8ca10b

File tree

3 files changed

+43
-69
lines changed

3 files changed

+43
-69
lines changed

README.md

Lines changed: 14 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -21,14 +21,19 @@
2121
<img src="https://cdn.learnku.com/uploads/images/202011/09/4430/qsECw9Ctgv.jpg!large">
2222
</p>
2323

24+
## 目录
25+
- laravel >= 9 `composer require "iidestiny/laravel-filesystem-oss:^3"`
26+
- laravel < 9 `composer require "iidestiny/laravel-filesystem-oss:^2"`
27+
2428
## 扩展包要求
2529

26-
- PHP >= 7.0
30+
- PHP >= 8.02
31+
- Laravel >= 9
2732

2833
## 安装命令
2934

3035
```shell
31-
$ composer require "iidestiny/laravel-filesystem-oss" -vvv
36+
$ composer require "iidestiny/laravel-filesystem-oss:^3" -vvv
3237
```
3338

3439
## 配置
@@ -86,22 +91,6 @@ $disk = Storage::disk('oss');
8691

8792
// 上传
8893
$disk->put('avatars/filename.jpg', $fileContents);
89-
90-
// 检查文件是否存在
91-
$exists = $disk->has('file.jpg');
92-
93-
// 获取文件修改时间
94-
$time = $disk->lastModified('file1.jpg');
95-
$time = $disk->getTimestamp('file1.jpg');
96-
97-
// 拷贝文件
98-
$disk->copy('old/file1.jpg', 'new/file1.jpg');
99-
100-
// 移动文件也可改名
101-
$disk->move('old/file1.jpg', 'new/file1.jpg');
102-
103-
// 获取文件内容
104-
$contents = $disk->read('folder/my_file.txt');
10594
```
10695

10796
以上方法可在 [laravel-filesystem-doc](https://laravel.com/docs/5.5/filesystem) 查阅
@@ -110,16 +99,13 @@ $contents = $disk->read('folder/my_file.txt');
11099

111100
```php
112101
// 获取文件访问地址「公共读的 bucket 才生效」
113-
$url = $disk->getUrl('folder/my_file.txt');
102+
$url = $disk->getAdapter()->getUrl('folder/my_file.txt');
114103

115104
// 设置文件访问有效期「$timeout 为多少秒过期」「私有 bucket 才可看见效果」
116-
$url = $disk->signUrl('cat.png', $timeout, ['x-oss-process' => 'image/circle,r_100']);
117-
118-
// 和 signurl 功能一样,区别在于 $expiration 是未来过期时间如:2019-05-05 17:50:32 时链接失效
119-
$url = $disk->getTemporaryUrl('file.md', $expiration);
105+
$url = $disk->getAdapter()->getTemporaryUrl('cat.png', $timeout, ['x-oss-process' => 'image/circle,r_100']);
120106

121107
// 可切换其他 bucket「需要在 config 配置文件中配置 buckets」
122-
$exists = $disk->bucket('test')->has('file.jpg');
108+
$exists = $disk->getAdapter()->bucket('test')->xxx('file.jpg');
123109
```
124110

125111
## 获取官方完整 OSS 处理能力
@@ -129,7 +115,7 @@ $exists = $disk->bucket('test')->has('file.jpg');
129115

130116
```php
131117
// 获取完整处理能力
132-
$kernel = $disk->kernel();
118+
$kernel = $disk->getAdapter()->ossKernel();
133119

134120
// 例如:防盗链功能
135121
$refererConfig = new RefererConfig();
@@ -155,7 +141,7 @@ oss 直传有三种方式,当前扩展包使用的是最完整的 [服务端
155141
* 3. 回调自定义参数,oss 回传应用服务器时会带上
156142
* 4. 当前直传配置链接有效期
157143
*/
158-
$config = $disk->signatureConfig($prefix = '/', $callBackUrl = '', $customData = [], $expire = 30);
144+
$config = $disk->getAdapter()->signatureConfig($prefix = '/', $callBackUrl = '', $customData = [], $expire = 30);
159145
```
160146

161147
## 直传回调验签
@@ -169,8 +155,8 @@ $config = $disk->signatureConfig($prefix = '/', $callBackUrl = '', $customData =
169155
```php
170156
// 验签,就是如此简单
171157
// $verify 验签结果,$data 回调数据
172-
list($verify, $data) = $disk->verify();
173-
// [$verify, $data] = $disk->verify(); // php 7.1 +
158+
list($verify, $data) = $disk->getAdapter()->verify();
159+
// [$verify, $data] = $disk->getAdapter()->verify(); // php 7.1 +
174160

175161
if (!$verify) {
176162
// 验证失败处理,此时 $data 为验签失败提示信息

composer.json

Lines changed: 25 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,28 @@
11
{
2-
"name": "iidestiny/laravel-filesystem-oss",
3-
"description": "Oss storage filesystem for Laravel.",
4-
"license": "MIT",
5-
"authors": [{
6-
"name": "iidestiny",
7-
"email": "iidestiny@vip.qq.com"
8-
}],
9-
"require": {
10-
"php": "^7.0|^8.0",
11-
"iidestiny/flysystem-oss": "~2.0"
12-
},
13-
"autoload": {
14-
"psr-4": {
15-
"Iidestiny\\LaravelFilesystemOss\\": "src"
2+
"name": "iidestiny/laravel-filesystem-oss",
3+
"description": "Oss storage filesystem for Laravel.",
4+
"license": "MIT",
5+
"authors": [
6+
{
7+
"name": "iidestiny",
8+
"email": "iidestiny@vip.qq.com"
9+
}
10+
],
11+
"require": {
12+
"php": "^8.0.2",
13+
"iidestiny/flysystem-oss": "^4.0",
14+
"laravel/framework": "^9.0"
15+
},
16+
"autoload": {
17+
"psr-4": {
18+
"Iidestiny\\LaravelFilesystemOss\\": "src"
19+
}
20+
},
21+
"extra": {
22+
"laravel": {
23+
"providers": [
24+
"Iidestiny\\LaravelFilesystemOss\\OssStorageServiceProvider"
25+
]
26+
}
1627
}
17-
},
18-
"extra": {
19-
"laravel": {
20-
"providers": [
21-
"Iidestiny\\LaravelFilesystemOss\\OssStorageServiceProvider"
22-
]
23-
}
24-
}
2528
}

src/OssStorageServiceProvider.php

Lines changed: 4 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,7 @@
1212
namespace Iidestiny\LaravelFilesystemOss;
1313

1414
use Iidestiny\Flysystem\Oss\OssAdapter;
15-
use Iidestiny\Flysystem\Oss\Plugins\FileUrl;
16-
use Iidestiny\Flysystem\Oss\Plugins\Kernel;
17-
use Iidestiny\Flysystem\Oss\Plugins\SignUrl;
18-
use Iidestiny\Flysystem\Oss\Plugins\TemporaryUrl;
19-
use Iidestiny\Flysystem\Oss\Plugins\SignatureConfig;
20-
use Iidestiny\Flysystem\Oss\Plugins\SetBucket;
21-
use Iidestiny\Flysystem\Oss\Plugins\Verify;
15+
use Illuminate\Filesystem\FilesystemAdapter;
2216
use Illuminate\Support\ServiceProvider;
2317
use League\Flysystem\Filesystem;
2418

@@ -38,7 +32,8 @@ public function boot()
3832
{
3933
app('filesystem')->extend('oss', function ($app, $config) {
4034
$root = $config['root'] ?? null;
41-
$buckets = isset($config['buckets'])?$config['buckets']:[];
35+
$buckets = $config['buckets'] ?? [];
36+
4237
$adapter = new OssAdapter(
4338
$config['access_key'],
4439
$config['secret_key'],
@@ -49,17 +44,7 @@ public function boot()
4944
$buckets
5045
);
5146

52-
$filesystem = new Filesystem($adapter);
53-
54-
$filesystem->addPlugin(new FileUrl());
55-
$filesystem->addPlugin(new SignUrl());
56-
$filesystem->addPlugin(new TemporaryUrl());
57-
$filesystem->addPlugin(new SignatureConfig());
58-
$filesystem->addPlugin(new SetBucket());
59-
$filesystem->addPlugin(new Verify());
60-
$filesystem->addPlugin(new Kernel());
61-
62-
return $filesystem;
47+
return new FilesystemAdapter(new Filesystem($adapter), $adapter, $config);
6348
});
6449
}
6550

0 commit comments

Comments
 (0)