oss图片上传api_Flutter通过api上传图片到阿里OSS

本文介绍了如何在Flutter应用中通过API上传图片到阿里云OSS。由于Dart官方SDK缺失,作者利用第三方库`aly_oss`进行实现,详细步骤包括获取服务器配置信息、组装FormData、使用Dio进行POST请求,并最终成功上传。
摘要由CSDN通过智能技术生成

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

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. 所有工作都完成,  运行, 解决问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值