npm 包 esh-qn 使用教程

npm 包 esh-qn 使用教程

在前端开发中,我们经常需要上传图片到服务器,从而给用户提供更好的体验和更丰富的内容展示。而七牛云就是一个很好的图片上传服务器,提供了丰富的 API 接口以供开发者使用。要使用七牛云上传图片,我们可以借助 npm 包 esh-qn,这个包可以帮助我们简化上传图片的流程,让我们更加专注于业务代码的编写。

什么是 esh-qn?

esh-qn 是一个基于 Node.js 构建的上传图片库,使用 esh-qn 可以方便地将图片上传到七牛云服务器,并且支持自定义上传策略、图片处理等高级功能。esh-qn 的使用方法非常简单,只需要引入包并按照规范调用 API 即可实现上传功能。

开始使用 esh-qn

在开始使用 esh-qn 之前,我们需要首先在七牛云官网上申请自己的 AccessKey 和 SecretKey,这两个 key 都是与用户账号绑定的,所以需要先登录七牛云账号并进行认证。

安装 esh-qn

打开终端或命令行窗口,输入以下命令安装 esh-qn:

--- ------- ------

初始化 esh-qn

初始化 esh-qn 的方法如下:

----- -- - ------------------
----- ------ - -----------
  ---------- ----- ------ -----
  ---------- ----- ------ -----
  ------- ----- ------ ------
  ------- ----- --- --------
  -------- -------- -- ------- --- -------- --- ----- --------
  ----- ---------------- -- --------
---

以上代码中,我们通过qn.create()方法创建了一个 esh-qn 客户端实例,该实例包含了我们需要上传图片所需要的信息:

  • accessKeysecretKey 是我们在七牛云上申请的 key,用于鉴权和上传验证;
  • bucket 是我们在七牛云上创建的存储空间名称;
  • origin 是我们 CDN 的外网域名,用于访问图片;
  • timeout 是可选参数,表示 RPC 超时时间,单位:ms。默认值为一个小时;
  • zone 是可选参数,表示上传的存储区域。有五个可选区域,分别为华东(Zone_z0)、华北(Zone_z1)、华南(Zone_z2)、北美(Zone_na0)和新加坡(Zone_as0)。

上传图片

上传图片的方法如下:

--------------------------- ---- -------- ----------
  • filePath 是待上传的文件路径;
  • key 是上传到服务器上的文件名;
  • options 是可选参数,用来指定上传的配置项,包括上传策略、自定义变量、图片处理等;
  • callback 是上传结束后的回调函数,函数原型为:(err, result) => {}

以下是一个简单的例子:

----- ------- - -
  --------- -------------
--
------------------------------------------- --------------------- -------- ----- ------- -- -
  -- ----- -
    -------------------
  - ---- -
    --------------------
  -
--

在这个例子中,我们指定了上传文件的 mimeType 为image/jpeg,并将文件上传到your-file-name.jpg这个 key 中。在上传成功后,我们将得到如下信息:

-
  ----- ------   -- -- --- -
  ---- ---------------------   -- -----
  ---- ------------------------------------   -- -----------------
-

我们可以通过这个地址来访问上传的图片。

其他上传方法

除了使用uploadFile()方法上传文件外,esh-qn 还提供了其他上传方法,包括:

  • uploadBuffer():将缓存中的二进制数据上传到服务器;
  • uploadStream():将流中的二进制数据上传到服务器;
  • batch():同时进行多个文件的上传;
  • fetch():从网络上抓取图片并上传。

这些上传方法的具体使用方式可以在 esh-qn 的官方文档中查看。

图片处理与回调验证

使用 esh-qn 可以方便地在上传图片的同时对图片进行处理(如裁剪、缩放、水印等)并进行回调验证。这一功能非常实用,可以让我们的应用达到更好的用户体验和运营效果。

图片处理

图片处理是指对上传的图片进行特定的处理操作,如缩放、裁剪、添加水印等。在 esh-qn 中,图片处理有两种方式:持久处理和数据处理。

  • 持久处理:将处理结果保存在服务器上,可以通过 CDN 访问。持久处理是通过七牛云的持久化机制实现的,可以将处理请求发送给七牛云服务器,服务器会自行进行处理并返回处理后的图片 URL。该 URL 可以在上传时返回,不会对上传性能造成影响。
  • 数据处理:在上传时动态处理图片,不会在服务器上保存处理后的图片。

在使用 esh-qn 对图片进行处理时,我们需要给上传策略增加相关指令,并在上传时将指令传递给服务器。例如:

----- ------- - -
  --------- -------------
  -------------- --------------------------------------------------------------------------------------------------------------------------
--
------------------------------------------- --------------------- -------- ----- ------- -- -
  -- ----- -
    -------------------
  - ---- -
    --------------------
  -
--

以上为对图片进行缩放和添加水印的上传请求,其中persistentOps变量用来指定操作类型和参数。这是一个 JSON 字符串,使用|分隔多个操作指令。

回调验证

在上传完毕后,我们可以让七牛云回调指定的 URL 地址,通知服务器图片已经上传成功或处理完毕。在回调时,七牛云会在 HTTP 头部中添加认证信息,我们可以验证这些信息以确认请求是真实有效的。在处理回调请求时,我们可以根据回调结果更新图片的信息、处理相关业务逻辑等。

使用 esh-qn 进行回调验证的方法如下:

----- ------------ - -----------------------------------------------------------------------
----- ----------- - ------------------
----- ------- - -
  --------- -------------
  ------------
  -------------
--
------------------------------------------- --------------------- -------- ----- ------- -- -
  -- ----- -
    -------------------
  - ---- -
    --------------------
  -
--

其中,callbackBody指定回调的HTTP 请求体,包括文件名、文件HASH值、文件大小、桶名、Key等信息。callbackUrl为接受回调请求的服务器地址。在收到回调请求后,我们可以在服务器端验证请求的合法性,并根据需要进行相应的处理。

总结

使用 esh-qn 可以方便地将图片上传到七牛云服务器,支持自定义上传策略、图片处理和回调验证等高级功能,使得图片上传变得更加简单方便。在开发实际项目时,我们可以根据需要选择适当的上传方式和配置,以达到最佳的性能和用户体验效果。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/72201


猜你喜欢

  • npm包pouchdb-adapter-leveldb-core使用教程

    简介 npm包pouchdb-adapter-leveldb-core是pouchdb-adapter-leveldb的核心适配器,可以在你的浏览器和Node.js应用程序中使用LevelDB接口。

    5 年前
  • npm 包 d64 使用教程

    在前端开发中,经常需要对字符、字符串等进行编码和解码。其中,d64 就是一种编码方式,全称为 Base64。使用 d64 可以将任意二进制数据编码为可打印的 ASCII 字符串。

    5 年前
  • npm 包 fsdown 使用教程

    在前端开发中,文件和文件夹的读取、操作是必不可少的功能。Node.js 的 fs 模块为我们提供了较为完备的文件操作 API,但是使用起来较为复杂。而 fsdown 是一个非常小巧的 npm 包,它为...

    5 年前
  • npm 包 throw-max-listeners-error 使用教程

    在前端开发中,经常会使用 npm 包来辅助开发。在使用这些 npm 包时,如果超过监听器的最大数量,往往会发出“MaxListenersExceededWarning”警告。

    5 年前
  • npm 包 pouchdb-generate-replication-id 使用教程

    在前端开发中,有一类常见的需求是需要进行数据同步或者复制。而在实现数据同步或复制时,为了保证数据的完整性,需要为每条数据生成一个唯一的 ID。这时就可以使用 npm 包 pouchdb-generat...

    5 年前
  • npm 包 pouchdb-checkpointer 使用教程

    简介 npm 包 pouchdb-checkpointer 是针对 PouchDB 进行同步进度监控的插件,可以帮助开发者实现更加精细的同步进度控制,从而提高应用的用户体验。

    5 年前
  • npm包pouchdb-replication使用教程#

    #npm包pouchdb-replication使用教程# PouchDB是一个基于JS的NoSQL数据库,它具有适应性强,轻便,易于集成和使用等多种优点。PouchDB-replication是一种...

    5 年前
  • npm 包 pouchdb-ajax 的使用教程

    简介 pouchdb-ajax 是一个用于和 PouchDB 数据库进行异步通信的 JavaScript 库。它是通过 Ajax 技术实现的,因此可以在客户端和服务器端使用。

    5 年前
  • npm 包 pouchdb-adapter-fs 使用教程

    在前端开发过程中,我们时常需要在浏览器端存储数据以及使用同步的方式访问这些数据。PouchDB 是一个用于客户端的 JavaScript 数据库,它提供了使用同步方式访问的能力。

    5 年前
  • npm 包 add-text-to-markdown 使用教程

    前言 在前端开发中,我们经常会需要在 Markdown 中插入文字,但是手动编辑 Markdown 文件会有一些麻烦,因此就有了 add-text-to-markdown 这个 npm 包。

    5 年前
  • npm 包 documentation-markdown-api-theme 使用教程

    在前端开发中,我们经常需要编写文档以及 API 文档,而 documentation-markdown-api-theme 是一个非常优秀的 npm 包,可以实现自动生成 API 文档并可以定制主题样...

    5 年前
  • npm 包 map-like 使用教程

    前言 开发现代 Web 应用离不开使用各种前端框架和工具库,使用 Npm 包管理工具来安装和管理这些包成为了大家的常规操作。其中,Map-Like 是一种常用的集合数据类型,让我们可以使用键值对来存储...

    5 年前
  • npm 包 is-file 使用教程

    什么是 npm 包 is-file? npm 包 is-file 是一个 Node.js 模块,用于判断指定路径是否为文件。使用 is-file 可以方便地在 Node.js 程序中判断一个路径是否为...

    5 年前
  • npm 包 path-to-glob-pattern 使用教程

    前言 在前端开发中,我们经常需要处理文件路径的获取、匹配等操作。而 glob 是一个常用的文件匹配工具,用于匹配符合特定模式的文件路径。而 npm 包 path-to-glob-pattern 正是建...

    5 年前
  • npm 包 textlint-rule-ja-space-around-code 使用教程

    在日语中,代码周围需要加入空格以表示块与文本的分离。这个过程可以通过 textlint-rule-ja-space-around-code npm 包来实现。在这篇文章中,我们将介绍如何使用这个 np...

    5 年前
  • npm 包 textlint-rule-ja-space-after-question 使用教程

    文本检测在前端开发中占据重要的地位,而 textlint 是一个强大的文本检测工具。textlint 并不是一个单一的工具,它是由 textlint 和 textlint-rule 组成的。

    5 年前
  • npm 包:`textlint-rule-ja-space-after-exclamation` 使用教程

    前言 在日语的写作中,想要写出优美流畅的句子就需要注意各种细节,其中一个重要的细节就是日语中感叹号后面需要留出一个空格。这看起来是微不足道的小问题,但如果忽略了这个细节,整篇文章就显得毫无美感。

    5 年前
  • npm 包 `textlint-rule-ja-space-between-half-and-full-width` 使用教程

    在日语文章写作中,全角字符和半角字符的使用非常频繁。为了保证文章排版的美观和规范,需要在全角字符与半角字符之间添加适当的间距。这是一项非常繁琐的工作,因此很容易出现错误。

    5 年前
  • npm 包 textlint-rule-ja-no-space-between-full-width 使用教程

    在日本的文本编辑中,全角字符(日文中的中文字符)和半角字符(全角字符的一半)都是常见的使用方式。不过,在某些情况下,过多使用空格会影响文本的可读性和美观性。对于这种情况,我们需要使用一些工具将文本中的...

    5 年前
  • npm 包 textlint-rule-ja-no-space-around-parentheses 使用教程

    安装 --- ------- --------------------------------------------使用 配置 在 .textlintrc 中进行配置: - -------- -...

    5 年前

相关推荐

    暂无文章