使用npm包 s3-upload-static 实现静态网站的上传

阅读时长 5 分钟读完

介绍

在前端开发中,静态网站的发布一般是通过将网站上传到服务器上完成的。而 s3-upload-static 是一个 npm 包,可以帮助我们快速上传静态网站到 AWS S3 上面。AWS S3 是一个高度可扩展的云存储服务,可以让你在网站快速、可靠的发布时,获得更好的体验。

这篇文章将详细阐述如何使用 s3-upload-static 包上传静态网站到 AWS S3 上。

开始

安装

首先,需要在本地安装 s3-upload-static 包:

配置 AWS S3

在使用 s3-upload-static 前,你需要先在 AWS S3 上设置一些配置。具体步骤如下:

  1. 创建一个 AWS S3 bucket;
  2. 打开 AWS S3 console,并选择你的 bucket;
  3. 进入 Permissions > Bucket Policy,并将下面的代码添加到 Policy 编辑器里。这里需要注意将<YOUR BUCKET NAME>替换成你的 bucket name。
-- -------------------- ---- -------
-
    ---------- -------------
    ------------ -
        -
            ------ ----------------------
            --------- --------
            ------------ ----
            --------- -
                --------------
            --
            ----------- -
                ------------------- ------ --------
            -
        -
    -
-
  1. 进入 IAM Management Console,并创建一个新的 IAM User。记住 Access Key ID 和 Secret Access Key。

配置 s3-upload-static

s3-upload-static 支持使用 aws-sdk 配置 AWS S3 和 IAM。

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

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

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

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

在 s3-upload-static 中,你需要配置下面这些内容:

  • aws:aws-sdk 的配置,包括 profile 和 region;
  • bucketName:你的 AWS S3 bucket name;
  • patternIndex:主页面的文件名,默认设置为index.html
  • pattern:上传的文件名支持 glob 模式,在配置 pattern 时,可以对需要上传的文件进行忽略。

接下来,进入你的项目根目录,使用下面的命令来上传静态网站:

上传成功后,你可以通过访问你的 AWS S3 bucket url,来查看刚刚上传的网站。

错误处理

当出现错误时,s3-upload-static 会抛出异常。以下是异常的类型:

  • AWS.S3.AccessDenied:AWS S3 权限不足。
  • AWS.S3.NoSuchBucket:Bucket name 不存在。
  • AWS.S3.NoSuchKey:Item name 不存在。
  • error:在上传过程中出现错误时。

示例

我们使用一个基于 react-redux 开发的说说社区项目作为示例演示。项目地址是:https://github.com/JeasonSun/moka-front。这个项目使用了 webpack 打包生成一个静态网站。

我们将主页面重命名为 index.html,并放在根目录下。上传这个项目时,使用下面的命令:

上传成功后,你可以通过访问你的 AWS S3 bucket url https://<Your S3 Bucket Name>.s3.amazonaws.com/index.html 来查看刚刚上传的网站。

总结

在本文中,我们详细阐述了如何使用 s3-upload-static 包将一个静态网站上传到 AWS S3 上。通过上述的示例,你可以快速地将自己的网站上传到 AWS S3 上。同时,你也可以通过这个例子,学习如何使用 aws-sdk 和 s3-upload-static 这个 npm 包。

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

纠错
反馈