本文由动哒公众号(dongda_5g),QQ群(174353204)提供,欢迎关注获取技术支持,有任何问题群里都会回复。
接上一篇文章(找不到文章?加QQ群。),本次咱们完成将视频上传到七牛云的功能。
(1)获取七牛云token
我这里token的获取地址为:http://api.360inhands.com:8080/qiniu_token/token/get?bucket=dynamic-app-public(不知道怎么搭建?还是加群)。
(2)pubspec.yaml添加插件
dio: ^3.0.9
sy_flutter_qiniu_storage: ^0.1.4
其中,dio是网络插件,sy_flutter_qiniu_storage是七牛云插件。
(3)增加QiniuModel类
class QiniuToken {
int status;
String info;
String token;
QiniuToken({this.status, this.info, this.token});
QiniuToken.fromJson(Map<String, dynamic> json) {
status = json['status'];
info = json['info'];
token = json['token'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['status'] = this.status;
data['info'] = this.info;
data['token'] = this.token;
return data;
}
}
(4)dio获取token
Dio().get('path').then((response) {
QiniuToken qiniuToken = QiniuToken.fromJson(response.data);
print(qiniuToken.token);
});
(5)获取token之后,则使用sy_flutter_qiniu_storage插件上传即可。我们看下具体写法。
final syStorage = new SyFlutterQiniuStorage();
_process = 0.0;
//监听上传进度
syStorage.onChanged().listen((dynamic percent) {
double p = percent;
setState(() {
_process = p;
});
print(percent);
});
String key = DateTime.now().millisecondsSinceEpoch.toString() +
'.' +
file.path.split('.').last;
String token = qiniuToken.token;
//上传文件
bool result = await syStorage.upload(file.path, token, key);
print(result); //true 上传成功,false失败
项目github地址:https://github.com/jishaofeng89/video_app_03
想要了解更多的同学们,请关注下我的公众号哟。