将您的代码迁移到适用于 JavaScript V3 - Amazon SDK for JavaScript
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

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

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

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

适用于 JavaScript 的软件开发工具包版本 3 (V3) 有许多迁移路径。为了充分利用 V3 的容量潜力降低,我们建议使用途径 3。

重要

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

Path 1

执行最小的更改:

  • 只安装特定的Amazon你需要的服务包。

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

    注意

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

Path 2

按照路径 1 然后删除.promise,这在 V3 中不是必需的。

Path 3

按照路径 1 进行操作,然后使用 async/await 编程模型。

重要

有关重大变化的信息Amazon SDK for JavaScript请参阅 v2 到 v3,请参阅升级注意事项(2.x 至 3.x)(位于 GitHub 上)。

以下各部分详细介绍了这些路径,并附有示例。

路径 1 示例 1

下面的代码安装Amazon适用于 Amazon S3 的服务包。

npm install @aws-sdk/client-s3

以下代码加载 Amazon S3 服务。

import {S3} from '@aws-sdk/client-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 示例 2

这是 V2 中使用promise.

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

这是 V3 版本。

const data = await v3client.command(params)

路径 3 示例 3

以下命令安装Amazon适用于 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); } })();

有关更多示例,请参阅 适用于的 SDKJavaScript代码示例