适用于 JavaScript 的 Amazon SDK V3 API 参考指南详细描述了 适用于 JavaScript 的 Amazon SDK 版本 3 (V3) 的所有 API 操作。
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Amazon S3 注意事项
亚马逊 S3 分段上传
在 v2 中,Amazon S3 客户端包含一项支持通过 A mazon S3 提供的分段上传功能上传大型对象的upload()操作。
在 v3 中,该
@aws-sdk/lib-storageupload() 操作中提供的所有功能,并支持 Node.js 和浏览器运行时。
亚马逊 S3 预签名 URL
在 v2 中,Amazon S3 客户端包含getSignedUrl()和getSignedUrlPromise()操作,用于生成 URL,用户可以使用该网址从 Amazon S3 上传或下载对象。
在 v3 中,该
@aws-sdk/s3-request-presignergetSignedUrl()和
getSignedUrlPromise()操作的函数。这篇博
亚马逊 S3 区域重定向
如果将错误的区域传递给 Amazon S3 客户端,并随后引发错误
PermanentRedirect(状态 301),则 v3 中的 Amazon S3 客户端支持区域重定向(以前在 v2 中称为 Amazon S3 全球客户端)。您可以在客户端配置中使用该followRegionRedirects标志让 Amazon S3 客户端遵循区域重定向并支持其作为全球客户端的功能。
注意
请注意,此功能可能会导致额外的延迟,因为当收到状态为 301 的PermanentRedirect错误时,会使用更正的区域重试失败的请求。只有在您事先不知道存储桶的区域时,才应使用此功能。
亚马逊 S3 直播和缓冲响应
v3 SDK 倾向于不缓冲可能较大的响应。这在 Amazon S3 GetObject 操作中很常见,该操作Buffer在 v2 中返回 a,但在 v3 Stream 中返回 a。
对于 Node.js,您必须使用流或垃圾收集客户端或其请求处理程序,以便通过释放套接字来保持连接对新流量开放。
// v2 const get = await s3.getObject({ ... }).promise(); // this buffers consumes the stream already.
// v3, consume the stream to free the socket const get = await s3.getObject({ ... }); // object .Body has unconsumed stream const str = await get.Body.transformToString(); // consumes the stream // other ways to consume the stream include writing it to a file, // passing it to another consumer like an upload, or buffering to // a string or byte array.
有关更多信息,请参阅有关套接字耗尽