npm 包 multer-s3-imager 使用教程

阅读时长 4 分钟读完

在现代 web 开发中,上传图片和文件已经成为很常见的场景。最近我发现了一个 npm 包 multer-s3-imager,它可以将上传的文件直接保存到 AWS S3,而且还可以在保存之前对图片进行压缩处理。在这篇文章中,我会详细介绍这个 npm 包的使用方法,包括安装、配置、调用等等。

1. 安装

首先,我们需要在自己的项目中安装 multer-s3-imager。在命令行中运行下面的命令:

这样就可以安装好这个 npm 包了。

2. 配置

在使用 multer-s3-imager 之前,我们需要对它进行一些配置。在我们的项目中,我们需要新建一个 S3 的 bucket,并且创建一个 IAM 用户,用于上传和读取图片。具体的操作可以参考 AWS 的文档

接着,我们需要在项目中定义一个配置对象,用于 multer-s3-imager 的初始化。这个配置对象中包含了 S3 的访问信息、上传路径、压缩参数等等。下面是一个示例配置对象:

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

配置对象中的各个字段的含义如下:

  • s3:S3 的访问信息,包括访问密钥、地区和 bucket 名称;
  • basePath:上传的路径,会自动在 bucket 中创建对应的目录;
  • genFilename:生成文件名的函数,可以根据自己的需要进行修改;
  • resize:压缩图片的参数,可以根据自己的需要进行修改,详细的参数说明可以参考 sharp 的文档

3. 调用

在配置好 multer-s3-imager 之后,我们就可以在我们的项目中使用它了。下面是一个简单的示例:

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

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

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

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

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

在上面的示例中,我们使用了 express 框架,同时使用 multer 和 multer-s3-imager 进行文件上传。在上传接口中,我们使用了上面定义的 upload 对象,在处理完上传之后,会返回一个文件对象,其中包含了文件的 url、文件名等信息。

4. 总结

通过这篇文章的介绍,我们了解了如何使用 npm 包 multer-s3-imager 进行图片上传和压缩。在使用之前,我们需要配置好 S3 的访问信息和上传路径,并定义一个配置对象。在接口中,我们使用 multer 和 multer-s3-imager 实现了文件上传和保存,并返回了保存后的文件对象。

这个 npm 包不仅能够方便地上传文件到 S3,还可以在上传之前对图片进行压缩处理,这对于一些需要处理大量图片的项目来说,是非常有用的。我希望这篇文章对读者有帮助,也欢迎大家在评论区留言交流。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005738581e8991b448e9787

纠错
反馈