peinhu/AetherUpload-Laravel

目前只能保存到本地再上传到OSS!能否跳过本地储存,直接上传到OSS?

Dzcyr opened this issue · 8 comments

Dzcyr commented

目前只能保存到本地再上传到OSS!能否跳过本地储存,直接上传到OSS?

阿里云的分片上传应该并不适合js分片后上传的场景吧?

看上面最后一个链接 发自我的 iPhone

在 2019年11月16日,15:03,JIANG @.***> 写道: 阿里云的分片上传应该并不适合js分片后上传的场景吧? — You are receiving this because you modified the open/close state. Reply to this email directly, view it on GitHub, or unsubscribe.

最后一个可以,我指你发的第二个,结合你当前的项目最为合适

@AaronWu
上传到服务器后再中转上传阿里云,这样多此一举没意义,你如果想使用阿里云oss储存,那直接用第三个链接的方法在前端直传oss就行了。
本扩展不包含阿里云等任何第三方储存的功能,如果你想采取中转再上传的方案,可以自行实现。
另外,这边原则上只解答本扩展的问题,第三方储存的问题我也不是很了解,你可以向阿里云发工单询问,描述你要解决的问题,会有工程师给你解答的。

@AaronWu
上传到服务器后再中转上传阿里云,这样多此一举没意义,你如果想使用阿里云oss储存,那直接用第三个链接的方法在前端直传oss就行了。
本扩展不包含阿里云等任何第三方储存的功能,如果你想采取中转再上传的方案,可以自行实现。
另外,这边原则上只解答本扩展的问题,第三方储存的问题我也不是很了解,你可以向阿里云发工单询问,描述你要解决的问题,会有工程师给你解答的。

首先感谢你的回复,其实也不是说中转,而是我想直接接管了你上传的几个步骤,例如:初始化和上传,拿到请求直接上传到阿里云,这样的话相对你的插件就是个适配层,适配本地和oss等。

@AaronWu
想法很好,但这个需求很难实现,因为阿里云oss是异步上传,流程是:初始化-上传分片-合并文件,而我这边是同步上传,流程是:初始化-上传分片且合并,我这个流程更适合php这种脚本语言,假设有一个8G的文件采用了oss的流程,有无数个分块,在最后合并文件过程中很容易执行超时,如使用任务队列新开单独进程的方式,又增加了复杂性容易出错,对脚本语言也不够友好。
并且,阿里云采用的是这种流程,那换另外一个xx云如果是其他流程,扩展就又失效了,不具有通用性。

@peinhu
我目前通过这种方式实现了,方式如下:将第一次上传的文件保存,每次发送uploading的时候我计算该文件的分片上传到阿里云oss,总感觉怪怪的。我发现你的插件每次uploading都是对文件全量提交,是slice未生效吗?还是设计就如此呢?
我理想的应该是你每次uploading过来我都直接转发到阿里云分片上传,为此我以文件的basename为key缓存了ossClient和uploadId,奈何限制比较多(因为阿里云的分片上传不允许多个不同的upload实例上传,而每次的uploading请求都是新的tmp),有什么好指点的地方吗?或者有问题的地方。方便可以wechat聊下(base64):d2o1MjBoYXJk