轻松搞定阿里OSS文件上传和图片下载

轻松搞定阿里OSS文件上传和图片下载





目录

1. 阿里云oss账号准备

  1.1 注册阿里云账号,并开通OSS存储服务

  1.2 创建RAM子用户并使用子账户的AccessKeyId和AccessKeySevcret进行业务操作,主账户存在安全问题

2. 项目中集成OSS依赖

3. 重写OSSFederationCredentialProvider从自家服务获取相关参数

4. OSSClient实例全局初始化

5. 封装和集成使用工具类,完成单文件上传,单文件断点续传、多文件上传等

6. OSSTokenServer 服务搭建(这个是模拟服务端产生token的,实际开发应该交给后台完成)

7. token获取支持HTTPS服务的优化和改进





1. 阿里云oss账号准备

1.1 注册阿里云账号,并开通OSS存储服务


1.2 创建RAM子用户并使用子账户的AccessKeyId和AccessKeySevcret进行业务操作,主账户存在安全问题

通过管理控制后台-访问控制 https://help.aliyun.com/product/28625.html

1.2.1 RAM控制台 https://ram.console.aliyun.com/

1.2.2 STS授权相关信息获取步骤:


2. 项目中集成OSS依赖

账号准备完成了,进入正题就是sdk的集成流程

module中添加依赖.配置完成后需同步一下

//阿里云OSS上传文件的SDK,上传内层依赖okhttp网络框架
compile 'com.aliyun.dpa:oss-android-sdk:+'
compile 'com.squareup.okhttp3:okhttp:3.11.0'
compile 'com.squareup.okio:okio:1.9.0'

proguard-rules.pro文件配置混线代码

#阿里云文件服务sdk
-keep class com.alibaba.sdk.android.oss.** { *; }
-dontwarn okio.**
-dontwarn org.apache.commons.codec.binary.**

3. 重写OSSFederationCredentialProvider从自家服务获取相关参数

由于移动端被认为是不可信的,因而重要参数是不可以存放在移动端的,这时候需要出发自己的服务器获取 AccessKeyId,AccessKeySecret,SecurityToken,Expiration 几个重要参数

触发请求自家服务器索要授权(这里我们的思路是放在OSSAuthCredentialsProvider中进行的)

  • 1, 发送自家网络请求,请求自家服务器索要授权
  • 2, 成功返回拿到需要AccessKeyId、AccessKeySecret、SecurityToken、Expiration
  • 3, 获取这些信息后,调用阿里SDK,构建OssClient上传即可

后端经返回如下代码

{
    "StatusCode": "200",
    "AccessKeyId": "STS.jp1jz2IHjp1jz2IH5Ef3jp1jz2IH5Ef3jp1jz2IH5Ef35Ef3",
    "AccessKeySecret": "BeoXtPg1lXbtPg1lXbttPg1lXbtIqqjp1j",
    "SecurityToken": "CAISkwJ1q6Ft5B22y2yyfSjIrok4uh5UUUQ7+EeP52yfSjIrokh5UytDWLIo/2yfSjIrok4uh5UdAIkq6NFHA
  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值