obs上传文件到服务器,OBS服务应用于互联网数据上传时 使用POST 实现服务端和客户端权限控制和数据上传分离的方法...

1背景

采用JavaScript SDK 等客户端直接签名时,AccessKeyID和AcessKeySecret会暴露在前端页面,因此存在严重的安全隐患。因此,OBS提供了服务端签名后直传的方案 解决此问题。问题代码如下所示(需要在前端使用ak sk作为初始化条件):

10b6a31d10e6c5c55fcec658d310d882.png

2原理介绍

8ea2c5411dd21d133a622cbdc2a48c00.png

1.客户端在登陆后,向app server请求上传对象的鉴权token;

2.App server 根据永久AK SK和针对上传对象和桶的policy生成一个token(具体参考后的代码示例)

3.前端组件 收到token后使用post请求将token作为一个表单项进行对象上传。

9d269afe2f7c6f6f5ab7f943b91a576f.png

b643b37086c8ab788a293a18ff7677cd.png

2.1.2约束限制

1.Post表单上传是单流上传,没法实现断点续传功能。因此比较适合一些小文件的上传。

2.Post上传对于表单域我们采用强校验模式,只要携带的表单域除我们没定义的外都要包含在policy中参与签名计算。具体参考文档描述:https://support.huaweicloud.com/api-obs/zh-cn_topic_0106557184.html

08f2fe5c9757d9fc24f784bd5e06e4bd.png

3流程和源码解析

3.1服务端代码

Java SDK 代码示例生成服务端tokenpackage samples_java;

import java.io.File;

import java.io.IOException;

import java.util.ArrayList;

import com.obs.services.ObsClient;

import com.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值