Node.js 入门 - AWS SDK for JavaScript

帮助我们改进AWS SDK for JavaScript版本 3 (V3) 文档,方法是使用反馈链接,或者在上创建议题或拉取请求GitHub.

这些区域有:AWS SDK for JavaScriptV3 API 参考指南详细描述了所有的 API 操作AWS SDK for JavaScript版本 3 (V3)。

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Node.js 入门

JavaScript code example that applies to Node.js execution

此 Node.js 代码示例演示:

  • 如何安装和包括项目所用的模块。

  • 如何编写 Node.js 代码以创建 Amazon S3 存储桶并将对象上载到该存储桶。

  • 如何运行代码。

场景

示例演示如何设置和运行简单 Node.js 模块,该模块创建 Amazon S3 存储桶,然后将文本对象添加到其中。

先决条件任

要设置和运行此示例,您必须先完成以下任务:

  • 安装 npm.

  • 设置项目环境以运行这些节点 TypeScript 示例,然后安装所需的AWS SDK for JavaScript和第三方模块。按照上的说明操作GitHub.

  • 您需要向提供凭证AWS这样只有您的帐户及其资源可由开发工具包访问。有关获取您的账户凭证的更多信息,请参阅从共享凭证文件加载 Node.js 中的凭证

第 1 步:安装 Amazon S3 软件包和依赖项

要安装客户端软件包和依赖项:

  1. src项目目录,有一个package.json文件用于保存 Node.js 项目的元数据。

    注意

    有关在 Node.js 项目中使用 package.json 的详细信息,请参阅什么是 package.json 文件?

    { "name": "aws-sdk-v3-iam-examples", "version": "1.0.0", "main": "index.js", "dependencies": { "@aws-sdk/client-s3": "^3.32.0" }, "type": "module" }

    示例代码可用GitHub 上的这里.

  2. nodegetstarted包含package.json输入以下命令。

    npm install

    已安装软件包和依赖项。

    注意

    您可以将依赖项添加到package.json然后通过运行来安装它们npm install. 您还可以通过命令行直接添加依赖项。例如,要安装AWS SDK for JavaScript适用于 Amazon S3 的 v3 客户端模块,请在命令行中输入以下命令。

    npm install @aws-sdk/client-s3

    这些区域有:package.json依赖项会自动更新。

第 2 步:编写 Node.js 代码

重要

此示例演示了如何使用 ECMASCRIPT6 (ES6) 导入/导出客户端服务对象和命令。

创建名为的文件夹libs在项目的根目录中,创建名为sampleClient.js包含创建 Amazon S3 服务客户端对象的客户端。将以下代码复制并粘贴到该文件中。Replace领域和你的AWS区域。

import { S3Client } from "@aws-sdk/client-s3"; // Set the AWS Region. const REGION = "REGION"; //e.g. "us-east-1" // Create an Amazon S3 service client object. const s3Client = new S3Client({ region: REGION }); export { s3Client };

可以找到示例代码GitHub 上的这里.

接下来,在项目的根目录中,创建名为sample.js.

首先,通过替换来定义参数BUCKET_NAME用存储桶的名称,密钥用新对象的名称,身体包含新对象的一些内容。

接下来,创建一个 Amazon S3 客户端对象。然后创建一个按顺序运行两个 try/catch 语句的异步包装函数。第一个 try/catch 语句创建存储桶,第二个语句创建并上传新对象。

要创建存储桶,您可以创建一个常量来运行CreateBucketCommand使用.send方法使用 async/await 模式,传入新存储桶的名称。wait 关键字会阻止执行后续的所有代码,直到存储桶创建。如果出现错误,则第一个catch语句会返回错误。

要在创建对象后创建并将其上传到新存储桶,您可以创建一个常量来运行PutObjectCommand,还使用.send方法使用 async/await 模式,并传入存储桶、密钥和主体参数。如果出现错误,则第二个catch语句会返回错误。

// Import required AWS SDK clients and commands for Node.js. import { PutObjectCommand, CreateBucketCommand } from "@aws-sdk/client-s3"; import { s3Client } from "./libs/s3Client.js"; // Set the parameters const params = { Bucket: "BUCKET_NAME", // The name of the bucket. For example, 'sample_bucket_101'. Key: "KEY", // The name of the object. For example, 'sample_upload.txt'. Body: "BODY", // The content of the object. For example, 'Hello world!". }; const run = async () => { // Create an Amazon S3 bucket. try { const data = await s3Client.send( new CreateBucketCommand({ Bucket: params.Bucket }) ); console.log(data); console.log("Successfully created a bucket called ", data.Location); return data; // For unit tests. } catch (err) { console.log("Error", err); } // Create an object and upload it to the Amazon S3 bucket. try { const results = await s3Client.send(new PutObjectCommand(params)); console.log( "Successfully created " + params.Key + " and uploaded it to " + params.Bucket + "/" + params.Key ); return results; // For unit tests. } catch (err) { console.log("Error", err); } }; run();

可以找到示例代码GitHub 上的这里.

第 3 步:运行示例

输入以下命令以运行示例。

node sample.js

如果上传成功,您将在命令提示符处看到一条确认消息。您还可在 Amazon S3 控制台中找到存储桶和上传的文本对象。