npm 包 s3events 使用教程

阅读时长 6 分钟读完

Amazon S3 提供了非常实用的云存储服务,但是如果需要使用 S3 的事件触发机制,可能需要写一些复杂的代码来实现。而 s3events 这个 npm 包可以帮助我们简化这个过程,让我们能够更加轻松地使用 S3 的事件触发机制。在本文中,我们将介绍如何使用 s3events 进行 S3 事件触发。

安装

首先,需要通过 npm 安装 s3events:

使用

在安装完 s3events 之后,就可以开始使用它了。下面是一个简单的示例,说明如何在一个桶(Bucket)中创建一个对象,当这个对象被创建或更新时,执行一个 Lambda 函数:

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

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

上面的示例代码中,我们首先引入了 s3events 模块,并使用了 S3Events 构造函数创建了一个 s3events 对象。在这个对象上,我们调用了 on 方法,并传入了两个参数。第一个参数是一个字符串,表示我们监听的事件名称,这里使用了通配符 * 以匹配所有事件。第二个参数是一个对象,表示我们要监听的桶和对象(即路径),这里指定了桶的名称和对象的键值。

当事件触发时,我们在回调函数中输出了被创建的对象的键值。需要注意的是,这个回调函数是在事件触发之后异步执行的,所以在它内部可以调用 Lambda 函数或者做其他一些异步操作。

深入理解

以上是一个简单的示例,实际上 s3events 还提供了更多的功能来满足各种场景下的需求。下面我们进一步深入理解 s3events 的运作原理。

监听事件

在上面的示例中,我们使用了通配符 * 来监听所有事件。实际上,除了通配符,还有很多不同的事件名称可以用来指定需要监听的事件。以下是一些示例:

  • ObjectCreated:Put - 对象被创建或更新
  • ObjectCreated:Post - 对象被创建或更新(通过分段上传)
  • ObjectRemoved:* - 对象被删除
  • ObjectRestore:Completed - 对象恢复

可以通过在事件名称后面加上 : 符号,再跟上不同的后缀来指定不同的事件类型。需要注意的是,使用通配符 * 会监听所有事件,这可能会消耗大量的资源,因此需要谨慎使用。

监听范围

在 s3events 中,可以使用多种方式指定监听的范围。比如,在上面的示例中,我们指定监听的桶和对象为:

这意味着如果创建或更新了这个桶中的指定对象,就会触发事件。如果想监听整个桶的事件,可以不传入 Key 属性,如下所示:

这样就会监听这个桶中所有对象的事件。

另外,还可以使用前缀来指定监听的对象的范围。例如,下面的示例将监听在桶中路径为 my-folder 的所有对象:

事件格式

在 s3events 中,事件会以 JSON 格式传递给回调函数。以下是一个示例事件的结构:

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

需要特别注意的是,s3events 中的事件信息是嵌套在 Records 数组中的,因此在回调函数中需要使用 event.Records[0] 来访问事件信息。

快速创建监听器

除了使用 on 方法进行事件监听,s3events 还提供了一些快捷创建监听器的方法,比如:

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

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

这些方法可以让开发者更加方便地创建监听器,从而更快速地实现 S3 事件触发。

总结

在本文中,我们介绍了如何使用 s3events 包进行 Amazon S3 事件触发机制的监听。首先,我们安装了 s3events 包,并编写了一个简单的示例程序。之后,我们深入了解了如何指定事件监听范围和监听事件类型,并学习了如何处理 S3 事件传递给回调函数的 JSON 格式数据。最后,我们介绍了一些快捷创建监听器的方法。通过这些知识和技巧,我们可以更加轻松地实现和管理 Amazon S3 中的事件触发机制。

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

纠错
反馈