当前位置: 首页 > news >正文

对象存储 JavaScript SDK 更新,即刻体验更简单·可信赖的服务

JavaScript 是一个通用的、跨平台、中立于厂商的脚本语言,起源于用户对于浏览器交互体验的旺盛需求。随着互联网的发展和进步,JavaScript 的版本也持续迭代提供了越来越丰富的功能,不断提升用户的体验。

更好的 JavaScript SDK

在 H5 File API 出现之前,前端对于文件的操作是非常有局限性的,往往要依赖 flash 去处理文件操作,大多需要配合后端实现。出于安全角度考虑,从本地上传文件时,代码不可能获取文件在用户本地的地址,所以纯前端不可能完成一些类似图片预览的功能,

我们的旧版 JavaScript SDK 便是受当时历史环境所限,只是勉强能堪一用,用户体验不佳的问题一直是我们研发小哥的遗憾。一直致力于给用户提供简单、可信赖服务的我们,希望用户对 SDK 工具的感受也是易用高效的。自然,随着 H5 File API 技术日趋成熟,经过内部讨论充分验证后我们便第一时间将 JavaScript SDK 升级迭代。并已于近日发布,更新信息如下:

  • 基于原生浏览器 API,轻便:

适用于 :IE11、Edge、Chrome、Firefox、Safari 等浏览器,基于七牛云官方 API 构建,其中上传功能基于 H5 File API。开发者基于 JS-SDK 可以方便的从浏览器端上传文件至七牛云,并对上传成功后的图片进行丰富的数据处理操作。

  • API 简单清晰:

我们借鉴了 RxJS 的接口设计模式,新 SDK 的接口非常简单,用户可以直接在 configputExtra 里来进行相应的参数设置,我们把上传与所接收的参数分开而不是像老版的全部放到一坨,这样子层次也比较清晰。

  • 并发控制:

旧版 SDK 在分片上传的时候是同步串行的,其他片必须等前面片上传成功才能接着上传,这其实浪费了时间并且降低了浏览器的资源利用;于是在新版 SDK 中我们在分片上传优化成并发,并且加入了并发控制,用户可以通过 config.thread 来设置并发请求数量。实现最大并发量只取决于用户所使用的浏览器自身限制。

  • md5 校验:

新版 SDK 提供了 md5 校验,用户不用担心文件在未上传成功情况下被修改而导致最后生成错误文件,用户可以通过 config.checkByMD5 来设置 md5 校验是否开启。

  • 组合 API 搭配第三方插件实现对老浏览器的兼容:

JS-SDK 兼容支持 H5 File API 的浏览器,在低版本浏览器下,需要额外的插件如 plupload,JS-SDK 提供了一些接口可以结合插件来进行上传工作。我们在新版 SDK 中把插件的引用剥离了出去,对于需要兼容低版本浏览器的用户,可以自己引用插件,并结合新版 SDK 提供的接口进行开发。

  • 对图像处理的优化:

SDK 提供了如水印、缩略、旋转等图像处理接口,并在旧版的基础上用 promise 优化了原来的异步请求接口。大家可以访问 Demo 来体验我们的 demo 。

e.g. 上传图片并进行图片处理的效果如下:

即刻使用

新版 JavaScript SDK 目前支持多种几种安装方式,用户可以根据自己的开发习惯自由选择:

1.直接使用静态文件地址:

https://unpkg.com/qiniu-js@<version>/dist/qiniu.min.js

通过 sctipt 标签引入该文件,会在全局生成名为 qiniu 的对象。

2.使用 NPM 安装

NPM 的全称是 Node Package Manager,是一个 NodeJS 包管理和分发工具,现今已成为非官方发布 Node 模块(包)的标准。如需更详细的关于 NPM 的使用说明,您可以访问 NPM 官方网站,或对应的中文网站。

npm install qiniu-js

var qiniu = require("qiniu.js")
// or

import * as qiniu from "qiniu-js"

3.通过源码编译

git clone git@github.com:qiniu/js-sdk.git,进入项目根目录执行 npm install ,执行 npm run build,即可在 dist 目录生成 qiniu.min.js

访问我们的官方文档站 或是 Fork GitHub 可了解更多信息

关注公众号七牛云,了解更多信息哦~

相关文章:

  • 【1封新邀请】想跟谷歌、七牛、kyligence等大佬面对面的交流吗?
  • 共战疫情,携手企业,「七牛云」在行动!
  • 双十一划重点!还有必考题一定要记住!
  • 秀场直播的四种实现方式,让我们从方案架构进行分析
  • 11月深圳,你不可错过的线下技术活动!
  • 轻量级大数据ETL的开发框架——​七牛云内部平台架构 QStreaming
  • 聚焦自主创新,七牛云完成华为多项兼容性认证
  • 【技术猩球】牛人分享:大数据架构师在关注什么?
  • Niu Talk 数据科学系列论坛:明晚,我们聊聊大数据与开源
  • 是什么让你在赛博空间更好看?
  • 直播新规出台!如何用技术管住乱打赏的「熊孩子」?
  • 【技术猩球】七牛云姜智:Go+ 演进之路
  • 七牛云视频模板 SDK:「剪刀手」是怎样炼成的?
  • ECUG 全球技术大会开幕在即|顶级技术领袖助阵,共探无界未来
  • 【ECUG】十四年如一日,有这样一群初心不改的技术人
  • 【刷算法】求1+2+3+...+n
  • JavaWeb(学习笔记二)
  • Laravel 中的一个后期静态绑定
  • PHP的类修饰符与访问修饰符
  • spark本地环境的搭建到运行第一个spark程序
  • Spark学习笔记之相关记录
  • Vue ES6 Jade Scss Webpack Gulp
  • Windows Containers 大冒险: 容器网络
  • 翻译:Hystrix - How To Use
  • 个人博客开发系列:评论功能之GitHub账号OAuth授权
  • 基于组件的设计工作流与界面抽象
  • 类orAPI - 收藏集 - 掘金
  • 为视图添加丝滑的水波纹
  • 云栖大讲堂Java基础入门(三)- 阿里巴巴Java开发手册介绍
  • 终端用户监控:真实用户监控还是模拟监控?
  • 第二十章:异步和文件I/O.(二十三)
  • #控制台大学课堂点名问题_课堂随机点名
  • (TOJ2804)Even? Odd?
  • (二)c52学习之旅-简单了解单片机
  • (附源码)spring boot基于Java的电影院售票与管理系统毕业设计 011449
  • (附源码)ssm本科教学合格评估管理系统 毕业设计 180916
  • (九)c52学习之旅-定时器
  • (论文阅读30/100)Convolutional Pose Machines
  • (每日持续更新)jdk api之FileReader基础、应用、实战
  • (一)kafka实战——kafka源码编译启动
  • (转)总结使用Unity 3D优化游戏运行性能的经验
  • .apk文件,IIS不支持下载解决
  • .NET NPOI导出Excel详解
  • [20160807][系统设计的三次迭代]
  • [C/C++]_[初级]_[关于编译时出现有符号-无符号不匹配的警告-sizeof使用注意事项]
  • [C++参考]拷贝构造函数的参数必须是引用类型
  • [LVGL]:MACOS下使用LVGL模拟器
  • [Nginx]反向代理Node将3000端口访问转换成80端口
  • [NOI 2016]优秀的拆分
  • [NOI2005]聪聪与可可(期望)
  • [one_demo_12]递归打印*\n*.*.\n*..*..\n图形
  • [one_demo_8]十进制转二进制
  • [Pyhton]weakref 弱引用
  • [PyTorch][chapter 8][李宏毅深度学习][Back propagation]
  • [uniapp的页面传参]详细讲解uniapp中页面传参的传递方式和接受方式 使用案例 代码注释