node-red-contrib-s3 是一个 Node-RED 的 AWS S3 节点,它可以方便地将数据存储在 AWS S3 存储桶中。本教程将介绍如何使用该节点,包括设置 AWS 凭证、创建 AWS S3 存储桶和配置 node-red-contrib-s3 节点,帮助你快速上手使用。
AWS 授权凭证配置
在使用 AWS S3 之前,你需要创建一个 Amazon Web Services 的账户并获取 AWS 授权凭证。在 AWS 管理控制台中,单击 IAM,然后选择“用户”选项卡,创建一个新的 IAM 用户并保存凭证访问密钥 ID 和秘密访问密钥。这些凭证将用于配置 node-red-contrib-s3 节点。
创建并配置 AWS S3 存储桶
接下来,你需要创建一个 AWS S3 存储桶,使其可供 node-red-contrib-s3 节点使用。在 AWS 管理控制台中,单击 S3,然后单击“创建存储桶”。为存储桶提供唯一的名称和区域,然后选择“下一步”并保留其他默认值。最后,选择“创建存储桶”。
设置 S3 存储桶的访问权限。选择“存储桶”选项卡,找到刚刚创建的存储桶,单击其名称进入存储桶界面,然后单击“权限”选项卡。在“存储桶策略”部分中,添加以下 JSON 代码并替换 YOUR_BUCKET_NAME
为你的存储桶名称:
-- -------------------- ---- ------- - ---------- ------------- ------------ - - ------ ---------------------- --------- -------- ------------ ---- --------- --------------- ----------- --------------------------------- - - -
这段代码允许公共读取存储桶的对象。
安装并配置 node-red-contrib-s3 节点
在 Node-RED 的安装目录中,使用以下命令安装 node-red-contrib-s3:
npm install node-red-contrib-s3
安装完成后,启动 Node-RED。在 Node-RED 节点面板中搜索 node-red-contrib-s3,并将该节点拖至编辑器中。双击节点以打开其配置面板,然后输入 AWS S3 凭证信息和存储桶名称。
在“输入类型”部分中,你可以选择使用一个文件或一条消息来设置数据。在此示例中,我们使用一个 JSON 文件,并将其内容设置为:
-- -------------------- ---- ------- - ------- ---------------------- ---------- -------- -------------- ------- ----- -- --- -- ----- ---- ----- ------- ----------- --------------- - ---------- ---------- -- --------- --- ----- -
单击“保存并部署”按钮,配置完成。
示例代码
以下代码演示了如何使用 node-red-contrib-s3 节点上传文件到 AWS S3 存储桶:
[{"id":"9833c3b5.5f5c5","type":"inject","z":"2b9af9ac.1486c8","name":"","topic":"","payload":"","payloadType":"date","repeat":"5","crontab":"","once":false,"onceDelay":0.1,"x":140,"y":300,"wires":[["7ad901c4.d4a18"]]},{"id":"7ad901c4.d4a18","type":"file in","z":"2b9af9ac.1486c8","name":"","filename":"/home/user/test.txt","format":"","chunk":false,"sendError":false,"encoding":"none","x":320,"y":300,"wires":[["15cc6037.73288"]]},{"id":"15cc6037.73288","type":"function","z":"2b9af9ac.1486c8","name":"","func":"msg.s3Key = 'test.txt';\nmsg.bucket = 'my-aws-bucket';\nmsg.region = 'us-west-2';\nreturn msg;","outputs":1,"noerr":0,"x":510,"y":300,"wires":[["c4692fb9.dd2008"]]},{"id":"c4692fb9.dd2008","type":"s3 out","z":"2b9af9ac.1486c8","name":"","bucket":"","region":"","s3Subfolder":"","x":700,"y":300,"wires":[]}]
该代码使用 inject
节点来定期生成消息,然后使用 file in
节点将文件加载到缓存中,并将其转发到 function
节点中。function
节点将 AWS S3 存储桶名称、S3 键和区域设置为消息属性,并将其转发到 s3 out
节点中。s3 out
节点将文件上传到指定的 AWS S3 存储桶。
结论
本文介绍了使用 node-red-contrib-s3 节点将文件上传到 AWS S3 存储桶。在使用该节点之前,你需要在 AWS 管理控制台中配置 AWS 授权凭证和存储桶。通过本文所述的方法,你可以方便地将数据存储在 AWS S3 存储桶中,方便相关工作。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60056d6381e8991b448e7031