huhx / flutter_oss_aliyun

阿里云oss sdk的flutter版本
MIT License
61 stars 22 forks source link

Add putObjectFile, calculate MD5 using stream; fixed onSendProgress #15

Closed xuelongqy closed 1 year ago

xuelongqy commented 1 year ago

使用流的方式计算MD5,不会导致UI卡顿,但速度会慢一些。 Header添加content-length,onSendProgress才会生效,putObject添加进度不会动,不清楚具体原因。

huhx commented 1 year ago

之前的putObject因为不是stream上传,所以onSendProgress在上传过程中没有回调。你的这个pull request我在本地测试只有上传完成onSendProgress才回调一次吧

huhx commented 1 year ago

暂时做法是用multipart/form-data上传文件,没有做文件的md5检查。

Instance of 'FormData'

send: count = 29, and total = 43029
send: count = 157, and total = 43029
send: count = 42996, and total = 43029
send: count = 42998, and total = 43029
send: count = 43029, and total = 43029
*** Response ***
xuelongqy commented 1 year ago

我这边使用putObjectFile,有onSendProgress进度回调

huhx commented 1 year ago

我这边使用putObjectFile,有onSendProgress进度回调

我复制你的代码,onSendProgress只回调了一次,就是结束的时候。

xuelongqy commented 1 year ago

还有个问题是,md5.convert计算大文件的话,会导致UI明显卡顿

huhx commented 1 year ago

还有个问题是,md5.convert计算大文件的话,会导致UI明显卡顿

是的,md5主要是安全考虑,我先暂时没有计算md5了。感谢你的pull request,我推了一版上去了:4.1.5

huhx commented 1 year ago

还有个问题是,md5.convert计算大文件的话,会导致UI明显卡顿

我这边使用putObjectFile,有onSendProgress进度回调

onSendProgress我想要的效果就是上传大文件时,我可以实时知道上传的进度。比如1%, 5%, 90%, 100%

huhx commented 1 year ago

还有个问题是,md5.convert计算大文件的话,会导致UI明显卡顿

是的,md5主要是安全考虑,我先暂时没有计算md5了。感谢你的pull request,我推了一版上去了:4.1.5

关于md5的校验,后续我再考虑加进去。也可以做成让user决定要不要md5的这种