

 [适用于 JavaScript 的 Amazon SDK V3 API 参考指南](https://docs.amazonaws.cn/AWSJavaScriptSDK/v3/latest/)详细描述了 适用于 JavaScript 的 Amazon SDK 版本 3 (V3) 的所有 API 操作。

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

# 客户端构造函数
<a name="migrate-client-constructors"></a>

 此列表通过 [v2 配置参数](https://docs.amazonaws.cn/AWSJavaScriptSDK/latest/AWS/Config.html)编制索引。
+  [https://docs.amazonaws.cn/AWSJavaScriptSDK/latest/AWS/Config.html#computeChecksums-property](https://docs.amazonaws.cn/AWSJavaScriptSDK/latest/AWS/Config.html#computeChecksums-property) 
  +  **v2**：服务接受时是否计算有效载荷主体的 MD5 校验和（目前仅在 S3 中支持）。
  +  **v** 3：适用的 S3 命令（PutObject PutBucketCors、等）将自动计算请求负载的 MD5 校验和。您也可以在命令的 `ChecksumAlgorithm` 参数中指定其他校验和算法，以使用不同的校验和算法。更多信息请参阅 [S3 功能公告](https://www.amazonaws.cn/blogs/aws/new-additional-checksum-algorithms-for-amazon-s3/)。
+  [https://docs.amazonaws.cn/AWSJavaScriptSDK/latest/AWS/Config.html#convertResponseTypes-property](https://docs.amazonaws.cn/AWSJavaScriptSDK/latest/AWS/Config.html#convertResponseTypes-property) 
  +  **v2**：解析响应数据时是否转换类型。
  +  **v3**：**已弃用**。此选项被视为不具备类型安全特性，因为它不会转换 JSON 响应中的转换时间戳或 base64 二进制文件等类型。
+  [https://docs.amazonaws.cn/AWSJavaScriptSDK/latest/AWS/Config.html#correctClockSkew-property](https://docs.amazonaws.cn/AWSJavaScriptSDK/latest/AWS/Config.html#correctClockSkew-property) 
  +  **v2**：是否应用时钟偏差校正和重试因客户端时钟偏差导致失败的请求。
  +  **v3**：**已弃用**。SDK *始终*应用时钟偏差校正。
+  [https://docs.amazonaws.cn/AWSJavaScriptSDK/latest/AWS/Config.html#systemClockOffset-property](https://docs.amazonaws.cn/AWSJavaScriptSDK/latest/AWS/Config.html#systemClockOffset-property) 
  +  **v2**：以毫秒为单位的偏差值，适用于所有签名时间。
  +  **v3**：无变更。
+  [https://docs.amazonaws.cn/AWSJavaScriptSDK/latest/AWS/Config.html#credentials-property](https://docs.amazonaws.cn/AWSJavaScriptSDK/latest/AWS/Config.html#credentials-property) 
  +  **v2**：用于对请求进行签名的 Amazon 凭证。
  +  **v3**：无变更。该函数也可以是用于返回凭证的异步函数。如果该函数返回 `expiration (Date)`，则系统在过期日期临近时将再次调用该函数。有关 `AwsAuthInputConfig` 凭证的详细信息，请参阅 [v3 API 参考](https://docs.amazonaws.cn/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-middleware-signing/Interface/AwsAuthInputConfig/)。
+  [https://docs.amazonaws.cn/AWSJavaScriptSDK/latest/AWS/Config.html#endpointCacheSize-property](https://docs.amazonaws.cn/AWSJavaScriptSDK/latest/AWS/Config.html#endpointCacheSize-property) 
  +  **v2**：存储来自端点发现操作的端点的全局缓存大小。
  +  **v3**：无变更。
+  [https://docs.amazonaws.cn/AWSJavaScriptSDK/latest/AWS/Config.html#endpointDiscoveryEnabled-property](https://docs.amazonaws.cn/AWSJavaScriptSDK/latest/AWS/Config.html#endpointDiscoveryEnabled-property) 
  +  **v2**：是否动态调用由服务提供的端点操作。
  +  **v3**：无变更。
+  [https://docs.amazonaws.cn/AWSJavaScriptSDK/latest/AWS/Config.html#hostPrefixEnabled-property](https://docs.amazonaws.cn/AWSJavaScriptSDK/latest/AWS/Config.html#hostPrefixEnabled-property) 
  +  **v2**：是否将请求参数编入主机名前缀。
  +  **v3**：**已弃用**。SDK 会在必要时*始终*自动注入主机名前缀。
+  [https://docs.amazonaws.cn/AWSJavaScriptSDK/latest/AWS/Config.html#httpOptions-property](https://docs.amazonaws.cn/AWSJavaScriptSDK/latest/AWS/Config.html#httpOptions-property) 

   一组要传递给底层 HTTP 请求的选项。在 v3 中，这些选项的聚合方式有所不同。您可以通过提供新的 `requestHandler` 对其进行配置。以下是在 Node.js 运行时设置 http 选项的示例。你可以在的 [v3 API 参考中找到更多信息 NodeHttpHandler](https://docs.amazonaws.cn/AWSJavaScriptSDK/v3/latest/Package/-smithy-node-http-handler/)。

   默认情况下，所有 v3 请求都使用 HTTPS。您只需提供自定义的 httpsAgent。

  ```
  const { Agent } = require("https");
  const { Agent: HttpAgent } = require("http");
  const { NodeHttpHandler } = require("@smithy/node-http-handler");
  const dynamodbClient = new DynamoDBClient({
      requestHandler: new NodeHttpHandler({
          httpsAgent: new Agent({
              /*params*/
          }),
          connectionTimeout: /*number in milliseconds*/,
          socketTimeout: /*number in milliseconds*/
      }),
  });
  ```

   如果您要传递的是使用 http 的自定义端点，则需提供 httpAgent。

  ```
  const { Agent } = require("http");
  const { NodeHttpHandler } = require("@smithy/node-http-handler");
  
  const dynamodbClient = new DynamoDBClient({
      requestHandler: new NodeHttpHandler({
          httpAgent: new Agent({
              /*params*/
          }),
      }),
      endpoint: "http://example.com",
  });
  ```

   如果客户端在浏览器中运行，则可使用另一组选项。你可以在的 [v3 API 参考中找到更多信息 FetchHttpHandler](https://docs.amazonaws.cn/AWSJavaScriptSDK/v3/latest/Package/-smithy-fetch-http-handler/)。

  ```
  const { FetchHttpHandler } = require("@smithy/fetch-http-handler");
  const dynamodbClient = new DynamoDBClient({
      requestHandler: new FetchHttpHandler({
          requestTimeout: /* number in milliseconds */
      }),
  });
  ```

   `httpOptions` 的每个选项说明如下：
  +  `proxy` 
    +  **v2**：用于代理请求的 URL。
    +  **v3**：您可以遵循 [Configuring proxies for Node.js](https://docs.amazonaws.cn/sdk-for-javascript/v3/developer-guide/node-configuring-proxies.html) 中的说明，设置具有代理程序的代理。
  +  `agent` 
    +  **v2**：用于执行 HTTP 请求的代理对象。用于连接池。
    +  **v3**：您可以按照上述示例配置 `httpAgent` 或 `httpsAgent`。
  +  `connectTimeout` 
    +  **v2**：将套接字设置为在连接服务器失败后经过 `connectTimeout` 毫秒后超时。
    +  **v3**：`connectionTimeout` 可在 [`NodeHttpHandler` 选项中](https://docs.amazonaws.cn/AWSJavaScriptSDK/v3/latest/Package/-smithy-node-http-handler/)使用。
  +  `timeout` 
    +  **v2**：请求在自动终止前可以耗费的毫秒数。
    +  **v3**：`socketTimeout` 可在 [`NodeHttpHandler` 选项中](https://docs.amazonaws.cn/AWSJavaScriptSDK/v3/latest/Package/-smithy-node-http-handler/)使用。
  +  `xhrAsync` 
    +  **v2**：SDK 是否发送异步 HTTP 请求。
    +  **v3**：**已弃用**。请求*始终*为异步。
  +  `xhrWithCredentials` 
    +  **v2**：设置 XMLHttp请求对象的 “withCredentials” 属性。
    +  **v3**：不可用。SDK 继承[默认的获取配置](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch)。
+  [https://docs.amazonaws.cn/AWSJavaScriptSDK/latest/AWS/Config.html#logger-property](https://docs.amazonaws.cn/AWSJavaScriptSDK/latest/AWS/Config.html#logger-property) 
  +  **v2**：用于响应 `.write()`（如流）或 `.log()`（如控制台对象）调用的对象，用于记录请求相关信息。
  +  **v3**：无变更。v3 提供更精细的日志。
+  [https://docs.amazonaws.cn/AWSJavaScriptSDK/latest/AWS/Config.html#maxRedirects-property](https://docs.amazonaws.cn/AWSJavaScriptSDK/latest/AWS/Config.html#maxRedirects-property) 
  +  **v2**：服务请求中允许跟随的重定向最大次数。
  +  **v3**：**已弃用**。SDK *不会*跟随重定向，以避免意外的跨区域请求。
+  [https://docs.amazonaws.cn/AWSJavaScriptSDK/latest/AWS/Config.html#maxRetries-property](https://docs.amazonaws.cn/AWSJavaScriptSDK/latest/AWS/Config.html#maxRetries-property) 
  +  **v2**：服务请求可执行的最大重试次数。
  +  **v3**：已更改为 `maxAttempts`。在 [v3 API 参考中查看更多信息 RetryInputConfig](https://docs.amazonaws.cn/AWSJavaScriptSDK/v3/latest/Package/-smithy-middleware-retry/Interface/RetryInputConfig/)。请注意，`maxAttempts` 应设置为 `maxRetries + 1`。
+  [https://docs.amazonaws.cn/AWSJavaScriptSDK/latest/AWS/Config.html#paramValidation-property](https://docs.amazonaws.cn/AWSJavaScriptSDK/latest/AWS/Config.html#paramValidation-property) 
  +  **v2**：是否应在发送请求前根据操作描述对输入参数进行验证。
  +  **v3**：**已弃用**。SDK 在运行时*不会*在客户端进行验证。
+  [https://docs.amazonaws.cn/AWSJavaScriptSDK/latest/AWS/Config.html#region-property](https://docs.amazonaws.cn/AWSJavaScriptSDK/latest/AWS/Config.html#region-property) 
  +  **v2**：要向其发送服务请求的区域。
  +  **v3**：无变更。它也可以是用于返回区域字符串的异步函数。
+  [https://docs.amazonaws.cn/AWSJavaScriptSDK/latest/AWS/Config.html#retryDelayOptions-property](https://docs.amazonaws.cn/AWSJavaScriptSDK/latest/AWS/Config.html#retryDelayOptions-property) 
  +  **v2**：一组选项，用于配置可重试错误的重试延迟。
  +  **v3**：**已弃用**。SDK 通过 `retryStrategy` 客户端构造函数选项支持更灵活的重试策略。更多信息请参阅 [v3 API 参考](https://docs.amazonaws.cn/AWSJavaScriptSDK/v3/latest/Package/-smithy-util-retry/)。
+  [https://docs.amazonaws.cn/AWSJavaScriptSDK/latest/AWS/Config.html#s3BucketEndpoint-property](https://docs.amazonaws.cn/AWSJavaScriptSDK/latest/AWS/Config.html#s3BucketEndpoint-property) 
  +  **v2**：提供的端点是否指向单个存储桶（如果其地址为根 API 端点，则为 false）。
  +  **v3**：已更改为 `bucketEndpoint`。更多信息请参阅 [bucketEndpoint 的 v3 API 参考](https://docs.amazonaws.cn/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-middleware-bucket-endpoint/Interface/BucketEndpointInputConfig/)。请注意，当设置为 `true` 时，需在 `Bucket` 请求参数中指定请求端点，原始端点将被覆盖。而在 v2 中，客户端构造函数中的请求端点会覆盖 `Bucket` 请求参数。
+  [https://docs.amazonaws.cn/AWSJavaScriptSDK/latest/AWS/Config.html#s3DisableBodySigning-property](https://docs.amazonaws.cn/AWSJavaScriptSDK/latest/AWS/Config.html#s3DisableBodySigning-property) 
  +  **v2**：使用签名版本 v4 时是否禁用 S3 正文签名。
  +  **v3**：已重命名为 `applyChecksum`。
+  [https://docs.amazonaws.cn/AWSJavaScriptSDK/latest/AWS/Config.html#s3ForcePathStyle-property](https://docs.amazonaws.cn/AWSJavaScriptSDK/latest/AWS/Config.html#s3ForcePathStyle-property) 
  +  **v2**：是否强制 URLs 使用 S3 对象的路径样式。
  +  **v3**：已重命名为 `forcePathStyle`。
+  [https://docs.amazonaws.cn/AWSJavaScriptSDK/latest/AWS/Config.html#s3UseArnRegion-property](https://docs.amazonaws.cn/AWSJavaScriptSDK/latest/AWS/Config.html#s3UseArnRegion-property) 
  +  **v2**：是否使用请求资源 ARN 推断出的区域覆盖请求区域。
  +  **v3**：已重命名为 `useArnRegion`。
+  [https://docs.amazonaws.cn/AWSJavaScriptSDK/latest/AWS/Config.html#s3UsEast1RegionalEndpoint-property](https://docs.amazonaws.cn/AWSJavaScriptSDK/latest/AWS/Config.html#s3UsEast1RegionalEndpoint-property) 
  +  **v2**：当区域设置为“us-east-1”时，是将 s3 请求发送到全局端点还是“us-east-1”区域端点。
  +  **v3**：**已弃用**。当区域设置为 `us-east-1` 时，S3 客户端将始终使用区域端点。您可以将区域设置为 `aws-global`，以向 S3 全局端点发送请求。
+  [https://docs.amazonaws.cn/AWSJavaScriptSDK/latest/AWS/Config.html#signatureCache-property](https://docs.amazonaws.cn/AWSJavaScriptSDK/latest/AWS/Config.html#signatureCache-property) 
  +  **v2**：是否缓存用于签署请求的签名（覆盖 API 配置）。
  +  **v3**：**已弃用**。SDK *始终*缓存哈希签名密钥。
+  [https://docs.amazonaws.cn/AWSJavaScriptSDK/latest/AWS/Config.html#signatureVersion-property](https://docs.amazonaws.cn/AWSJavaScriptSDK/latest/AWS/Config.html#signatureVersion-property) 
  +  **v2**：用于签署请求的签名版本（覆盖 API 配置）。
  +  **v3**：**已弃用**。v2 SDK 中支持的签名 V2 已被弃用。v3 *仅*支持签名 v4 Amazon。
+  [https://docs.amazonaws.cn/AWSJavaScriptSDK/latest/AWS/Config.html#sslEnabled-property](https://docs.amazonaws.cn/AWSJavaScriptSDK/latest/AWS/Config.html#sslEnabled-property) 
  +  **v2**：是否为请求启用 SSL。
  +  **v3**：已重命名为 `tls`。
+  [https://docs.amazonaws.cn/AWSJavaScriptSDK/latest/AWS/Config.html#stsRegionalEndpoints-property](https://docs.amazonaws.cn/AWSJavaScriptSDK/latest/AWS/Config.html#stsRegionalEndpoints-property) 
  +  **v2**：是将 sts 请求发送到全局端点还是区域端点。
  +  **v3**：**已弃用**。如果设置为特定区域，STS 客户端将*始终*使用区域端点。您可以将区域设置为 `aws-global`，以向 STS 全局端点发送请求。
+  [https://docs.amazonaws.cn/AWSJavaScriptSDK/latest/AWS/Config.html#useAccelerateEndpoint-property](https://docs.amazonaws.cn/AWSJavaScriptSDK/latest/AWS/Config.html#useAccelerateEndpoint-property) 
  +  **v2**：是否在 S3 服务中使用加速端点。
  +  **v3**：无变更。