npm 包 ghost-storage-adapter-s3-test 使用教程

阅读时长 5 分钟读完

简介

在 Ghost 博客系统中,默认的图片存储方式是本地存储。然而在生产环境中,本地存储容量有限,不能满足业务需求。此时,我们需要使用 AWS S3 存储来存储博客中的图片。为此,我们可以使用 npm 包 ghost-storage-adapter-s3-test,该包提供了与 Ghost 兼容的 S3 存储适配器,可以在 Ghost 中直接使用 S3 存储。

安装

在 Node.js 环境中,使用以下命令安装 ghost-storage-adapter-s3-test:

配置

AWS S3 配置

首先,我们需要在 AWS S3 上创建一个 Bucket。具体操作如下:

  1. 登录 AWS 控制台。
  2. 进入 S3 服务页面,点击“创建存储桶”,按照提示设置 Bucket 的名称、地域等信息。
  3. 在 Bucket 的“权限”标签页下,设置“CORS 配置”为以下内容:
-- -------------------- ---- -------
-------------------
  ----------
    --------------------------------
    ----------------------------------
    -----------------------------------
    --------------------------------------------
    -------------------------------------------
  -----------
--------------------

这里的 CORS 设置,是为了在前端通过浏览器访问 S3 Bucket 时,可以跨域访问。

  1. 在 Bucket 的“权限”标签页下,设置“Bucket 政策”为以下内容:
-- -------------------- ---- -------
-
  ---------- -------------
  ------------ -
    -
      --------- --------
      ------------ -
        ------ -------------------------------------
      --
      --------- -
        ---------------
        ---------------
        ---------------
      --
      ----------- -
        -------------------------------
        ----------------------------
      -
    -
  -
-

这里的 Bucket 政策,是为了授权我们的 IAM 用户可以访问该 Bucket。

Ghost 配置

在 Ghost 的配置文件 config.production.json 中,添加如下配置:

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

配置说明:

  • accessKeyId:AWS 访问密钥 ID,可以在 IAM 中创建。
  • secretAccessKey:AWS 访问密钥密码,可以在 IAM 中创建。
  • region:Bucket 所在地域,如“us-east-1”等。
  • bucket:Bucket 名称。
  • assetHost:外部访问的 S3 地址,如“https://s3.amazonaws.com”等。
  • assetPath:存储图片的路径,建议使用“/content/images/”。

使用

上述配置完成后,我们在 Ghost 中上传图片时,就可以自动将图片上传到 S3 存储中了。同时,图片的 URL 也会自动使用 S3 的 URL。

示例代码

以下是一个使用 ghost-storage-adapter-s3-test 的 Node.js 代码示例:

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

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

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

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

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

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

以上代码实现了将本地文件 tmp/test.png 上传到 S3 存储中,并返回 S3 的 URL。

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

纠错
反馈