Amazon SDK for JavaScript V3 API 参考指南详细描述了 Amazon SDK for JavaScript 版本 3 (V3) 的所有API操作。
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
亚马逊 S3 注意事项
亚马逊 S3 分段上传
在 v2 中,Amazon S3 客户端包含一项支持通过 A mazon S3 提供的分段上传功能上传大型对象的upload()
操作。
在 v3 中,该
@aws-sdk/lib-storage
upload()
操作中提供的所有功能,并支持 Node.js 和浏览器运行时。
亚马逊 S3 预签名 URL
在 v2 中,Amazon S3 客户端包含getSignedUrl()
和getSignedUrlPromise()
操作,用于生成 URL,用户可以使用该网址从 Amazon S3 上传或下载对象。
在 v3 中,该
@aws-sdk/s3-request-presigner
getSignedUrl()
和
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.
有关更多信息,请参阅有关套接字耗尽