美文网首页
Flutter通过api上传图片到阿里OSS

Flutter通过api上传图片到阿里OSS

作者: AbnerZhang | 来源:发表于2020-10-16 19:17 被阅读0次

    在做flutter时遇到图片上传到阿里oss上的功能, 首先官网上没有针对dart的sdk, 因此, 我通过https://pub.dev/ 查询竟然有大佬提供了库,  https://pub.dev/packages/aly_oss, 看了这个库, 但是我在flutter pub get成功后执行 flutter run尽然失败. 因此,  换个思路, 通过

    https://www.jianshu.com/p/7ca626c43863, 和 https://blog.csdn.net/Pillar1066527881/article/details/90447283文章的提示(非常感谢大佬), 后来偶然看到官网有关于直接用api上传的提示, 捣鼓了一天, 做出来了, 现分享如下:

    1. 首先通过接口获取本服务器配置的bucket和key, 属于基础配置, 后面要用;

    2. 然后通过接口获取accessKeyId, accessKeySecret,securityToken, 也属于基础配置, 后面要用;

    3. 然后就是组装FormData, 如图1所示, 

    图1

    1) Filename: 对应本地使用的名;

    2) key: 上传到服务器的文件名和路径, AliOssManager.instance.model.key为上面第一步提到的key;

    3) policy: OssUtil类中组装的(不好意思, 我也没看懂);

    4) OSSAccessKeyId: 第二步提到的accessKeyId;

    5) signature: OssUtil类中组装的, 参数accessKeySecret为第二步提到的accessKeySecret;

    6) x-oss-security-token: 第二步提到的securityToken;

    7) file: 图片文件;

    4. 组装好FormData后, 就是调用Dio发送网络请求了, 如图2所示, 

    图2

    为Dio的post请求所需要的参数, 此时, 我们只需要关心path和data, data, 就是刚才组装的FormData, path我这边纠结了很久,也不知道是什么, 后来偶然在官网上看到了,图3所示

    图3

    path为  BucketName.oss-cn-hangzhou.aliyuncs.com,  BucketName也就是前面第一步获取到的bucket,  oss-cn-hangzhou.aliyuncs.com为 endpoint, 申请oss服务的时候会有这个, 中间就  .   连接, 

    5. 所有工作都完成,  运行, 解决问题。

    相关文章

      网友评论

          本文标题:Flutter通过api上传图片到阿里OSS

          本文链接:https://www.haomeiwen.com/subject/jihtmktx.html