Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

在LARAVEL9版本中存在无法使用秒传的问题。 #103

Open
sunqj-sun opened this issue Mar 28, 2022 · 9 comments
Open

在LARAVEL9版本中存在无法使用秒传的问题。 #103

sunqj-sun opened this issue Mar 28, 2022 · 9 comments

Comments

@sunqj-sun
Copy link

在LARAVEL9版本中存在无法使用秒传的问题,原因是League\Flysystem的版本问题。 在LARAVEL5版本中,使用League\Flysystem是1.0版本,在LARAVEL9版本中 League\Flysystem 使用的是3.0版本,所以像
use League\Flysystem\Adapter\AbstractAdapter;
use League\Flysystem\Adapter\Polyfill\NotSupportingVisibilityTrait;
就会报不存在, 在FLYSYSTEM3.X中也不存在Adapter这个目录。

如果不使用秒传,则一切正常。不知道作者是否可以版本更新一下,或告知如何更改。

@sunqj-sun
Copy link
Author

我尝试改动了一下源代码后,发现可以秒传了。但我忘了修改哪些部分,然后又改乱了,还在坚持中。

@peinhu
Copy link
Owner

peinhu commented Mar 29, 2022

好的,等我看看

@sunqj-sun
Copy link
Author

@peinhu peinhu
谢谢。

@peinhu
Copy link
Owner

peinhu commented Mar 30, 2022

你好,不好意思现在才回你,之前在虚拟机安装最新版php和laravel的时候遇到很多问题,刚刚才解决,然后我验证了一下秒传是没问题的。
无法秒传应该是因为laravel在某个版本中,把默认的redis驱动由predis换成了phpredis,所以现在你只要在.env文件中规定redis的驱动即REDIS_CLIENT=predis就行了,其他什么都不用改,我已经验证过了,你试试。

@peinhu
Copy link
Owner

peinhu commented Mar 30, 2022

至于你说的League\Flysystem版本的问题,我验证时没遇到这种报错,不能复现,似乎无法秒传跟这个版本问题无关,先这样吧,后续有什么问题你再提出。

@sunqj-sun
Copy link
Author

好的,谢谢你!辛苦了, 我现在再试一下。有结果了我再回复您。

@sunqj-sun
Copy link
Author

抱歉,还得打扰您。之前的提问很荣幸能收到您的回复。

我说一下我再次测试的结果 ,
我使用 composer create-project laravel/laravel testupdate --prefer-dist 创建LARAVEL项目,项目默认的是LARAVEL9,PHP的版本要求是8.1,
我把PREDIS装好,并在ENV中加上REDIS_CLIENT=predis
在aetherupload中也把 spark-md5.min.js 文件引入,其它相关的配置我也配置好了,
然后打开:http://www.domain.com/aetherupload,进行大文件上传,在浏览器的控制台中出现500的字样,查看网络中的响应则显示

"message": "Class \"League\\Flysystem\\Adapter\\AbstractAdapter\" not found",
"exception": "Error",
"file": "D:\\wwwroot\\php\\2022\\0331\\testbigdataup\\vendor\\peinhu\\aetherupload-laravel\\src\\RedisAdapter.php",
"line": 9,

在查看 League\Flysystem 项目时,发现存在其版本地1.0的时侯,才会有 Adapter 这个目录,版本2,3两个版本都删除了Adapter这个目录,后来我查到网上有人说 版本是有漏洞. 
不启用秒传,则代码运行正常。
期待收到您的答复。万分感谢。

@xini2603
Copy link

xini2603 commented Apr 5, 2022

抱歉,还得打扰您。之前的提问很荣幸能收到您的回复。

我说一下我再次测试的结果 , 我使用 composer create-project laravel/laravel testupdate --prefer-dist 创建LARAVEL项目,项目默认的是LARAVEL9,PHP的版本要求是8.1, 我把PREDIS装好,并在ENV中加上REDIS_CLIENT=predis 在aetherupload中也把 spark-md5.min.js 文件引入,其它相关的配置我也配置好了, 然后打开:http://www.domain.com/aetherupload,进行大文件上传,在浏览器的控制台中出现500的字样,查看网络中的响应则显示

"message": "Class \"League\\Flysystem\\Adapter\\AbstractAdapter\" not found",
"exception": "Error",
"file": "D:\\wwwroot\\php\\2022\\0331\\testbigdataup\\vendor\\peinhu\\aetherupload-laravel\\src\\RedisAdapter.php",
"line": 9,

在查看 League\Flysystem 项目时,发现存在其版本地1.0的时侯,才会有 Adapter 这个目录,版本2,3两个版本都删除了Adapter这个目录,后来我查到网上有人说 版本是有漏洞. 
不启用秒传,则代码运行正常。
期待收到您的答复。万分感谢。

的确有这个问题:可以临时不用redis驱动,在配置项中:'header_storage_disk' => 'local', 把redis改为local来实现秒传

@sunqj-sun
Copy link
Author

抱歉,还得打扰您。之前的提问很荣幸能收到您的回复。
我说一下我再次测试的结果 , 我使用 composer create-project laravel/laravel testupdate --prefer-dist 创建LARAVEL项目,项目默认的是LARAVEL9,PHP的版本要求是8.1, 我把PREDIS装好,并在ENV中加上REDIS_CLIENT=predis 在aetherupload中也把 spark-md5.min.js 文件引入,其它相关的配置我也配置好了, 然后打开:http://www.domain.com/aetherupload,进行大文件上传,在浏览器的控制台中出现500的字样,查看网络中的响应则显示

"message": "Class \"League\\Flysystem\\Adapter\\AbstractAdapter\" not found",
"exception": "Error",
"file": "D:\\wwwroot\\php\\2022\\0331\\testbigdataup\\vendor\\peinhu\\aetherupload-laravel\\src\\RedisAdapter.php",
"line": 9,

在查看 League\Flysystem 项目时,发现存在其版本地1.0的时侯,才会有 Adapter 这个目录,版本2,3两个版本都删除了Adapter这个目录,后来我查到网上有人说 版本是有漏洞. 
不启用秒传,则代码运行正常。
期待收到您的答复。万分感谢。

的确有这个问题:可以临时不用redis驱动,在配置项中:'header_storage_disk' => 'local', 把redis改为local来实现秒传

感谢您的回复。如果改回LOCAL, 那一切就正常了,也不存在上面的错误,但应该不是秒传。
在LOCAL模式下,我试着从办公室往阿里云上传一个3个G的文件,基本上在30分钟左右就可以完成,所以我试一下秒传是什么样的,所以折腾了好一会,之前改动了一下源代码实现了秒传,但后来想完善一下代码,慢慢就改乱了。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants