将你的代码迁移到适用于 JavaScript V3 - AWS SDK for JavaScript

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

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

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

将你的代码迁移到适用于 JavaScript V3

适用于的开发工具包有多种迁移路径 JavaScript 版本 3 (V3)。要充分利用 V3 容量减少的潜力,我们建议使用路径 3。

重要

AWS SDK for JavaScript版本 3 (v3) 还附带了用于客户端配置和实用程序的现代化界面,其中包括凭证、Amazon S3 分段上传、DynamoDB 文档客户端、服务员等)。你可以在 v2 中找到更改的内容以及每个更改的 v3 等效项迁移指南位于AWS SDK for JavaScript GitHub 回购.

Path 1

执行最小的更改:

  • 仅安装特定的AWS您需要的服务包。

  • 创建和使用 V3 服务客户端,将使用任何全局配置值(如 Region)替换为作为参数传递给客户端的配置值。

    注意

    您可以设置AWS使用环境变量或共享配置的区域config文件。有关更多信息,请参阅 。在 Node.js 中设置凭证.

Path 2

沿着路径 1 移除.promise,这在 V3 中不是必需的。

Path 3

遵循路径 1 并使用 async/await 编程模型。

重要

有关以下内容的重大变更的信息AWS SDK for JavaScriptv2 到 v3, 请参阅升级说明 (2.x)上 GitHub.

以下各部分详细介绍了这些路径并提供了示例。

路径 1 示例

以下代码安装了AWS适用于 Amazon S3 的服务包。

npm install @aws-sdk/client-s3

以下代码加载了 Amazon S3 服务。

import {S3} from '@aws-sdk/client-s3';
注意

要使用此方法,您必须导入完整的AWS服务套餐,S3在这种情况下,而不仅仅是服务客户端。

以下代码在中创建一个 Amazon S3 服务对象us-west-2区域。

const client = new S3({region: 'us-west-2'});

以下代码使用来自 V2 的以下语法,使用回调函数创建一个 Amazon S3 存储桶。

client.command(parameters)
import {S3} from '@aws-sdk/client-s3'; const client = new S3({region: 'us-west-2'}); const bucketParams = { Bucket : BUCKET_NAME }; function run(){ client.createBucket(bucketParams, function(err, data) { if (err) { console.log("Error", err); } else { console.log("Success", data.Location); } }) }; run();

路径 2 示例

这是在 V2 中使用一个函数调用promise.

const data = await v2client.command(params).promise()

这里是 V3 版本。

const data = await v3client.command(params)

路径 3 示例

以下命令用于安装AWS适用于 Amazon S3 的服务包。

npm install @aws-sdk/client-s3;

以下代码仅加载 Amazon S3 客户端,从而减少了开销。

import {S3Client, CreateBucketCommand} from '@aws-sdk/client-s3';

如果只安装软件包的客户端,则还必须导入要使用的 V3 命令。在这种情况下,代码将导入CreateBucketCommand,这样您可以创建 Amazon S3 存储桶。你可以浏览项目中的可用命令node-modules/@aws-sdk/client-PACKAGE_NAME/commandsfolder。

以下代码在中创建一个 Amazon S3 服务客户端对象us-west-2区域。

const client = new S3Client({region: 'us-west-2'});

要使用推荐的 async/await 模式调用导入的命令,必须导入要使用的命令,然后使用以下语法运行命令。

CLIENT.send(newXXXCommand)

以下示例使用 async/await 模式创建 Amazon S3 存储桶,仅使用 Amazon S3 服务包的客户端来减少开销。

import {S3Client, CreateBucketCommand} from '@aws-sdk/client-s3'; const client = new S3Client({region: 'us-west-2'}); const bucketParams = { Bucket : BUCKET_NAME }; (async function () { try{ const data = await client.send(new CreateBucketCommand(bucketParams)); console.log("Success", data); } catch (err) { console.log("Error", err); } })();

有关更多示例,请参阅 适用于的开发工具包 JavaScript 代码示例