base64上传oss_上传图片到阿里云OSS

上传、预览、下载图片是app常用的功能之一,一般的做法是建立一个图片存储服务器,再开发一个接收前端上传文件的后端服务,接收到前端上传的图片文件,然后再调用存储服务器的接口完成图片文件的存储。

现在阿里云提供了对象存储云服务(OSS),非常方便APP直接将图片等文件上传上去,并提供了多种浏览、下载的方式,不仅操作简单、而且效率高、速度快,本文介绍三种使用方式,希望能够让工程师少走弯路。

传统模式

这种方式只是把OSS作为文件存储体替代了自建存储器,上传逻辑和路径还是和传统的方式一致,后端服务给前端提供上传接口,在收到前端上传的文件后,再调用阿里云的OSS SDK的API将文件上传到阿里云的OSS存储桶中。

0605dbba7dc8bf347f1487fdc10d2a44.png

上传流程

详细说明及相关代码请参考《云平台对象存储OSS》

直接表单方式

这种方式更加的便捷、快速,无需开发接收后端服务,而是前端直接将文件上传到OSS,这种方式就要求前端按照约定的参数访问OSS API,为了安全起见要按照阿里云SDK的方式生成相应的签名并提供给前端。

54f37efafd5967765847f9e47261a4ca.png

FORM表单直接上传流程

这里要求提前生成签名串,生成算法如下:

package aliyun;import aliyun.pojo.ResultData;import aliyun.pojo.SignatureData;import com.alibaba.fastjson.JSONObject;import org.apache.commons.codec.binary.Base64;public class Controller {    private final static String POLICY="{"expiration":"2025-12-31T23:59:59Z","conditions":[["content-length-range",0,104857600]]}";    private String accessKeySecret = System.getenv("ACCESS_SECRET_CODE");    public String signatureCode(int times) throws Exception {        ResultData resultData=new ResultData();        //约束规则        String encodePolicy = new String(Base64.encodeBase64(POLICY.getBytes()));    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值