flutter开发 - 七牛云上传sdk插件qiniu_flutter_sdk使用

这篇具有很好参考价值的文章主要介绍了flutter开发 - 七牛云上传sdk插件qiniu_flutter_sdk使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

flutter七牛云上传sdk插件qiniu_flutter_sdk使用
最近在拆分代码,将上传组件设置成插件,下面记录下实现过程。

一、创建flutter_plugin上传插件

这里Android Studio使用创建plugin

填写一下信息

  • Project name
  • Project location
  • Description
  • Project type
  • Organization
  • Android Language
  • iOS Language
  • Platforms

flutter开发 - 七牛云上传sdk插件qiniu_flutter_sdk使用

二、代码实现

2.1、实现qiniu_token
// 定义获取token接口
abstract class QiniuToken {
  Future<String> getToken();
}
2.2、实现qiniu_token
class QiniuTokenImpl implements QiniuToken {
  
  Future<String> getToken() {
    // TODO: implement getToken
    return Future.value("");
  }
}
2.3、实现qiniu_uploader

这里使用qiniu_flutter_sdk插件进行上传。
上传需要用到Storage、PutController。
PutController可以用来监听上传的状态等

  • PutController
// 创建 storage 对象
  storage = Storage();

  // 创建 Controller 对象
  putController = PutController();

  // 添加整体进度监听
  putController.onProgress((double percent) {
    print('任务进度变化:已发送:$percent');
  });

  // 添加发送进度监听
  putController.onSendProgress((double percent) {
    print('已上传进度变化:已发送:$percent');
  });

  // 添加状态监听
  putController.addStatusListener((StorageStatus status) {
    print('状态变化: 当前任务状态:$status');
  });

  // 使用 storage 的 putFile 对象进行文件上传
  storage.putFile(File('./file.txt'), 'TOKEN', PutOptions(
    controller: putController,
  ))
  • storage
    使用前必须创建一个 Storage 实例
 // 创建 storage 对象
  storage = Storage();
同时,在构造 Storage 时可以传入一个 Config 控制内部的一些行为,如下:

  // 创建 storage 对象
  storage = Storage(Config(
    // 通过自己的 hostProvider 来使用自己的 host 进行上传
    hostProvider: HostProvider,
    // 可以通过实现 cacheProvider 来自己实现缓存系统支持分片断点续传
    cacheProvider: CacheProvider,
    // 如果你需要对网络请求进行更基础的一些操作,你可以实现自己的 HttpClientAdapter 处理相关行为
    httpClientAdapter: HttpClientAdapter,
    // 设定网络请求重试次数
    retryLimit: 3,
  ));

实现上传的代码如下

QiniuToken qiniuToken;

  // 创建 storage 对象
  // 设定网络请求重试次数
  final Storage storage = Storage(
      config: Config(
    retryLimit: 3,
  ));

  final PutController putController = PutController();

  QiniuUploader(this.tokenFetch) {
    _listen();
  }

  
  Future<UploaderResp> upload(UploaderReq uploaderReq) async {
    // TODO: implement upload
    if (uploaderReq is QiniuUploaderReq) {
      File? file = uploaderReq.req['file'];
      if (file != null) {
        String token = await qiniuToken.getToken();
        PutResponse putResponse = await _uploadFile(file, token);
        UploaderResp<PutResponse> resp = UploaderResp();
        resp.data = putResponse;
        return Future.value(resp);
      } else {
        throw "upload请求req参数file异常!";
      }
    } else {
      throw "upload请求req类型必须是QiniuUploaderReq类型!";
    }
  }

  _listen() {
    // 添加状态监听
    putController.addStatusListener((StorageStatus status) {
      print('QiniuUploader StorageStatus:$status');
    });
  }

  Future<PutResponse> _uploadFile(File file, String token) async {
    String key = md5.convert(utf8.encode(file.path)).toString();
    print("key:${key}");
    return await storage.putFile(
      file,
      token,
      options: PutOptions(
        key: key,
        controller: putController,
      ),
    );
  }

之后在插件代码中flutter_component_uploader

flutter_component_uploader.dart文件中实现

library flutter_component_uploader;

export 'uploader/qiniu_token.dart';
export 'uploader/qiniu_token_impl.dart';
export 'uploader/qiniu_uploader.dart';

学习记录,每天不停进步。文章来源地址https://www.toymoban.com/news/detail-498369.html

到了这里,关于flutter开发 - 七牛云上传sdk插件qiniu_flutter_sdk使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 使用七牛云、阿里云、腾讯云的对象存储上传文件

     说明:存在部分步骤省略的情况,请根据具体文档进行操作  下载相关sdk 表单提交到七牛云 表单提交到阿里云  表单提交到阿里云(sts) 说明:需要修改acl权限,不然无法上传文件 表单提交到腾讯云 表单提交到腾讯云(sts)  参考:  上传策略_使用指南_对象存储 - 七牛开发者

    2024年02月14日
    浏览(14)
  • 使用(七牛云)为例子实现将文件上传到云服务器

    使用(七牛云)为例子实现将文件上传到云服务器

    目前,用户的头像、分享生成的长图等文件都是存放在本地的,我们可以将他们存放在云服务器中,此处我们使用七牛云作为例子示范。 创建账户并申请如下的两个bucket,分别是用户头像的存储空间和分享长图的存储空间。 相应的js文件: 文件已经存入七牛云

    2024年02月10日
    浏览(15)
  • vue+element ui上传图片到七牛云服务器

    vue+element ui上传图片到七牛云服务器

    本来打算做一个全部都是前端完成的资源上传到七牛云的demo,但是需要获取token,经历了九九八十一难,最终还是选择放弃,token从后端获取(springboot)。如果你们有前端直接能解决的麻烦记得私我哦!!! 效果展示 先看看文档: element ui :https://element.eleme.cn/#/zh-CN/compone

    2024年04月13日
    浏览(8)
  • springboot+vue项目中如何利用七牛云实现头像的上传

    springboot+vue项目中如何利用七牛云实现头像的上传

    做了个前后端分离的项目,对于用户的头像修改一直不是很满意, 于是用了Vant4的组件库改成了文件点击上传,先是打算存到本地,了解到七牛云的方便后(主要是免费),决定改成七牛云存储图片,记录一下操作,方便查看复习 目录 一、七牛云 七牛云简介 七牛云使用 二

    2024年02月11日
    浏览(17)
  • el-upload上传图片到七牛云或阿里云

    (1)绑定上传地址,上传数据对象 (2)定义数据 (3)定义方法         图片的路径就是图片头加上返回的key

    2024年02月10日
    浏览(49)
  • vue2+wangEditor5富文本编辑器(图片视频自定义上传七牛云/服务器)

    vue2+wangEditor5富文本编辑器(图片视频自定义上传七牛云/服务器)

    1、安装使用 安装 在main.js中引入样式 在使用编辑器的页面引入js 模板 js  到这一步编辑器就可以正常显示了 2、上传图片、视频 上传到后台接口的可直接按照文档这个配置就行接口返回格式也要可文档上一致    2)自定义上传(一般上传到别的服务器上,我这边是上传到七

    2024年02月11日
    浏览(55)
  • SpringBoot集成阿里云OSS、华为云OBS、七牛云、又拍云等上传案例【附白嫖方案】【附源码】

    SpringBoot集成阿里云OSS、华为云OBS、七牛云、又拍云等上传案例【附白嫖方案】【附源码】

    唉!本文写起来都是泪点。不是刻意写的本文,主要是对日常用到的文件上传做了一个汇总总结,同时希望可以给用到的小伙伴带来一点帮助吧。 上传本地,这个就不水了,基本做技术的都用到过吧; 阿里云OSS,阿里云是业界巨鳄了吧,用到的人肯定不少吧,不过博主好久

    2024年02月22日
    浏览(11)
  • 七牛云上传报错 Expected URL scheme ‘http‘ or ‘https‘ but no colon was found

    七牛云上传报错 Expected URL scheme ‘http‘ or ‘https‘ but no colon was found

    报错如下: 报错意思是:请求的url没有冒号,正常的是http:// 或者https://。 相关说明:服务器环境为甲方提供的linux服务器,不是云服务器, 相当于没有连接外网 ,涉及调用第三方Api需要将调用地址和端口提供给他们。配置以后才可以调用。因此在提供七牛云调用地址时,是在本

    2024年01月20日
    浏览(15)
  • 七牛云如何绑定自定义域名-小白操作说明——七牛云对象储存kodo

    七牛云如何绑定自定义域名-小白操作说明——七牛云对象储存kodo

    七牛云如何绑定自定义域名 **温馨提示:使用加速cdn自定义域名是必须要https的,也就是必须ssl证书,否则类似视频mp4 之类会无法使用。 ​ 编辑切换为居中 添加图片注释,不超过 140 字(可选) 点击首页————对象储存——进入点击空间管理——点击对应空间名称进入

    2024年02月13日
    浏览(10)
  • 七牛云 图片存储

    七牛云 图片存储

    在项目中,如用户头像、文章图片等数据往往需要使用单独的文件存储系统来保存 企业中常见的存储方案有两种: a.搭建分布式存储系统, 如FastDFS 数据量非常大, 具备相应的运维管理人员 b.第三方存储 运维成本低, 安全可靠 七牛云作为老牌云存储服务商, 提供了优质的第三方

    2024年02月16日
    浏览(13)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包