千家信息网

OSS JavaScript客户端是怎样的

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,OSS JavaScript客户端是怎样的,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。使用 OSS 上传到文件服务器做文件存储,还
千家信息网最后更新 2026年11月03日OSS JavaScript客户端是怎样的

OSS JavaScript客户端是怎样的,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

使用 OSS 上传到文件服务器做文件存储,还是一样通过 客户端直传,服务端只需要做一个签名的加密,这样子既可以做到安全性,又降低了服务端的压力:
OSS 客户daunt直传官方文档

大致的实现流程可以看下,签名对于我的理解是防止 篡改性,保证安全性

这上面的流程大家看下,应该就懂了,就是签名,上传,然后接收回调信息,然后告诉客户端成功了,这样子就是一个上传成功的实现。

这里是服务端的签名,大家根据自己的语言选择下载,我这边是以java为主,
如果不懂,文件存储等一些桶的配置,跨域的可以看看官方的文档
OSS 配置文档这里描述了这么去设置OSS的一些配置

设置好了之后我们来看看官方给的代码吧,我们需要设置一些什么呢:

bucketName: myxxxxxxxxxxxxx1 accessKey: LTAxxxxxxxxxxxxx1 secretKey: 46MxxxxxxxxxxxxxOe4yU region: oss-cn-beijing.aliyuncs.com dir: xxxxxxxxxxxxx/

bucketName就是Bucket的名称,region就是区域,dir就是目录了
我这里已经把代码都整理好了,需要的自取:
https://github.com/qurenneng/CloudObjectWeb-java,可以点个start哦
下载下来后,依赖都已经弄好了可以直接跑起来,然后访问 http://localhost:8084/index.html,这里要注意跨域一定要设置好,而且,OSS有一个问题,就是上传成功后回调,所以这里必须要放在云服务器上面才能进行测试,因为要接受OSS发送过来的回调参数,所以测试只能在服务器上面进行测试,需要的可以看 https://www.aliyun.com/activity?userCode=ooxl1zly
接下来我们看看代码吧:
CommonApiController:

/** 阿里云 oss web直传
* 验证签名:
* @return
*/
@GetMapping("/callbackSign")
public Map callbackSign(){
OssStsAuth ossStsAuth= new OssStsAuth();
Map sign = ossStsAuth.getSign(ossProperties);
return sign;
}

/**
* 阿里云 oss 回调进行回调:
* @return
*/
@RequestMapping("/callbackUrl")
public void callbackUrl(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
OssStsAuth ossStsAuth= new OssStsAuth();
String ossCallbackBody = ossStsAuth.GetPostBody(request.getInputStream(),
Integer.parseInt(request.getHeader("content-length")));
boolean b = ossStsAuth.VerifyOSSCallbackRequest(request, ossCallbackBody);
if(b){
ossStsAuth.response(request, response, "{\"Status\":\"OK\"}", HttpServletResponse.SC_OK);
}else{
ossStsAuth.response(request, response, "{\"Status\":\"verdify not ok\"}", HttpServletResponse.SC_BAD_REQUEST);
}
}
上面就是客户端上传的控制层,下面的接口是用户接受OSS回调的接口
OssStsAuth:


public Map getSign(OssProperties cosProperties){
String accessId = cosProperties.getAccessKey(); // 请填写您的AccessKeyId。
String accessKey = cosProperties.getSecretKey(); // 请填写您的AccessKeySecret。
String endpoint = cosProperties.getRegion(); // 请填写您的 endpoint。
String bucket = cosProperties.getBucketName(); // 请填写您的 bucketname 。
String host = "http://"> // callbackUrl为 上传回调服务器的URL,请将下面的IP和Port配置为您自己的真实信息。
String callbackUrl = "http://ip:8084/callbackUrl";
String dir = cosProperties.getDir(); // 用户上传文件时指定的前缀。
Map respMap = new LinkedHashMap();
OSSClient client = new OSSClient(endpoint, accessId, accessKey);
try {
long expireTime = 1000; //官方默认是 30秒 这里会出现 缓存的问题 解决 验证签名时会出现问题
long expireEndTime = System.currentTimeMillis() + expireTime * 1000;
Date expiration = new Date(expireEndTime);
PolicyConditions policyConds = new PolicyConditions();
policyConds.addConditionItem(PolicyConditions.COND_CONTENT_LENGTH_RANGE, 0, 1048576000);
policyConds.addConditionItem(MatchMode.StartWith, PolicyConditions.COND_KEY, dir);

String postPolicy = client.generatePostPolicy(expiration, policyConds);
byte[] binaryData = postPolicy.getBytes("utf-8");
String encodedPolicy = BinaryUtil.toBase64String(binaryData);
String postSignature = client.calculatePostSignature(postPolicy);

respMap.put("accessid", accessId);
respMap.put("policy", encodedPolicy);
respMap.put("signature", postSignature);
respMap.put("dir", dir);
respMap.put("host", host);
respMap.put("expire", String.valueOf(expireEndTime / 1000));

JSONObject jasonCallback = new JSONObject();
jasonCallback.put("callbackUrl", callbackUrl);
jasonCallback.put("callbackBody",
"filename=${object}&size=${size}&mimeType=${mimeType}&height=${imageInfo.height}&width=${imageInfo.width}");
jasonCallback.put("callbackBodyType", "application/x-www-form-urlencoded");
String base64CallbackBody = BinaryUtil.toBase64String(jasonCallback.toString().getBytes());
respMap.put("callback", base64CallbackBody);
return respMap;
} catch (Exception e) {
System.out.println(e.getMessage());
}
return respMap;
}
需要配置的参数都设置在application.yml文件中,
ossProperties:这个配置中,大家运行起来后直接访问上传就好了,配置等设置一定要弄好,有问题就下方评论吧

关于OSS JavaScript客户端是怎样的问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。

就是 问题 服务 配置 客户 客户端 文件 官方 服务器 成功 代码 文档 面的 测试 安全 信息 参数 安全性 接口 更多 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 中智农互联网科技 广州为想互联网科技有限公司 互联网科技活动banner 科技服务与互联网 远信互联网科技 朗涯互联网科技 互联网金融科技创新 亿账通互联网科技 多迪互联网科技有限公司 科技伦理 互联网公司 卫星互联网科技股票 新华互联网科技2019 湖北码尼互联网科技有限公司电话 银川新华互联网科技学校联系电话 本届互联网博览会上的黑科技 世界互联网领先科技成果获奖 广东工业互联网大赛深圳学泰科技 杭州融税互联网科技有限公司 保山浩联互联网科技有限公司 互联网科技创业计划的风险分析 科技互联网 科技类互联网 人人互联网科技是培训 湖北码尼互联网科技有限公司电话 广州市恰铎互联网科技有限公司 众安科技工业互联网合作 小米互联网科技园入驻 皮皮虾互联网科技有限公司 广州燕处互联网科技有限公司 世界互联网科技成果奖
0