AICon 上海站|日程100%上线,解锁Al未来! 了解详情
写点什么

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

  • 2019-10-05
  • 本文字数:1474 字

    阅读完需:约 5 分钟

对象存储 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 的接口非常简单,用户可以直接在 config 和 putExtra 里来进行相应的参数设置,我们把上传与所接收的参数分开而不是像老版的全部放到一坨,这样子层次也比较清晰。



  • 并发控制:


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


  • md5 校验:


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


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


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


  • 对图像处理的优化:


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


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


即刻使用

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

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

https://unpkg.com/qiniu-js@/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")// orimport * as qiniu from "qiniu-js"
复制代码

3.通过源码编译

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


本文转载自公众号七牛云(ID:qiniutek)。


原文链接:


https://mp.weixin.qq.com/s/GIg_7QfTQU-22s0svXa21w


2019-10-05 21:58758

评论

发布
暂无评论
发现更多内容

Django 做个小后台,细节在完善一点点,滚雪球学 Python 第三阶段

梦想橡皮擦

8月日更

Ipfs排名前十的公司有哪些?怎么选择靠谱的ipfs公司?

区块链 分布式存储 IPFS fil ipfs公司

Jetpack Compose 架构分层

Changing Lin

8月日更

U2Net基于ModelArts Notbook的仿真实验

华为云开发者联盟

开源 modelarts 目标检测算法 U2Net Notbook

【LeetCode】从上到下打印二叉树Java题解

Albert

算法 LeetCode 8月日更

手撸二叉树之将有序数组转换为二叉搜索树

HelloWorld杰少

数据结构与算法 8月日更

在openEuler上做开发?这个大赛拿出30万寻找开源的yyds

华为云开发者联盟

开源 操作系统 服务器 openEuler 鲲鹏

Hive企业级性能优化

五分钟学大数据

hive hive性能优化

FunTester框架教程(一)

FunTester

教程 接口测试 API测试 测试框架 FunTester

Prometheus监控的4个黄金指标

Rubble

Prometheus 8月日更

Rust从0到1-模式-相关语法

rust 语法 模式 Patterns Syntax

Go语言那些事儿之管道的关闭

Regan Yue

Go 语言 8月日更 管道

金融级IT架构:网商银行是如何进行数字化落地的

博文视点Broadview

Vue进阶(二十七):Vuex 之 getters, mapGetters, ...mapGetters详解

No Silver Bullet

Vue vuex 8月日更

从0开始的TypeScriptの五:webpack打包typescript

空城机

JavaScript typescript 大前端 8月日更

oeasy教您玩转vim - 14 - # 行头行尾

o

small-spring 代码贡献者3个月,敢说精通Spring了,分享我的总结!

小傅哥

spring 小傅哥 cglib aware BeanPost

这几个棘手的面试常见问题,如何高情商的回答?

架构精进之路

情商 8月日更

JavaScript 之事件循环(Event Loop)

网易云信

一文带你了解 TreeMap ,LinkedHashMap 的主要特点

4ye

Java 后端 hashmap LinkedHashMap 8月日更

Android开发:获取安卓App版本号的方法步骤

三掌柜

8月日更

Mybatis自定义拦截器与插件开发

码农参上

8月日更

【Vue2.x 源码学习】第三十三篇 - diff算法-收尾+阶段性总结

Brave

源码 vue2 8月日更

测试经验| 音视频通话相关app如何进行测试

anyRTC开发者

软件测试 音视频 实时通信

解决安全漏洞扫描,就靠它了

百度开发者中心

产品 最佳实践 企业动态 百度安全

netty系列之:自动重连

程序那些事

Java Netty 程序那些事 响应式系统

LeetCode题解:781. 森林中的兔子,贪心,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

七夕赶上服务器架构升级,女朋友的约会怎么办

华为云开发者联盟

华为云 FunctionGraph DevStar Serverless架构 服务器架构

送你两个神器,关系数据库数据入湖轻松应对

华为云开发者联盟

数据库 数据湖 数据迁移 关系数据库 实时数据

Stack Overflow 2021 开发者调查报告出炉,开发浪潮中的变与不变

清秋

语言 & 开发 文化 & 方法 Stack Overflow 开发者报告 编程语言排行

【Flutter 专题】70 图解自定义 ACEStepper 步进器

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 8月日更

对象存储 JavaScript SDK 更新,即刻体验更简单·可信赖的服务_文化 & 方法_七牛云_InfoQ精选文章