AWS SDK for JavaScript V3 API 참조 가이드에서는 버전 3(V3)의 모든 API 작업에 대해 AWS SDK for JavaScript 자세히 설명합니다.
기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
아마존 S3 고려 사항
Amazon S3 멀티파트 업로드
v2에서 Amazon S3 클라이언트에는 Amazon S3에서 제공하는 멀티파트 업로드 기능을 사용하여 대형 객체를 업로드할 수 있도록 지원하는 upload()
작업이 포함되어 있습니다.
v3에서는
@aws-sdk/lib-storage
upload()
작업에서 제공되는 모든 기능을 지원하며 Node.js 및 브라우저 런타임을 모두 지원합니다.
Amazon S3의 사전 서명된 URL
v2에서 Amazon S3 클라이언트에는 사용자가 Amazon S3에서 객체를 업로드하거나 다운로드하는 데 사용할 수 있는 URL을 생성하는 getSignedUrl()
및 getSignedUrlPromise()
작업이 포함되어 있습니다.
v3에서는
@aws-sdk/s3-request-presigner
getSignedUrl()
및
getSignedUrlPromise()
작업 모두에 대한 기능이 포함되어 있습니다. 이 블로그 게시물에서는
Amazon S3 지역 리디렉션
잘못된 지역이 Amazon S3 클라이언트에 전달되어 후속
PermanentRedirect
(상태 301) 오류가 발생하는 경우, v3의 Amazon S3 클라이언트는 지역 리디렉션 (v2에서는 Amazon S3 글로벌 클라이언트라고 함) 을 지원합니다. 클라이언트 구성의 followRegionRedirects
플래그를 사용하여 Amazon S3 클라이언트가 지역 리디렉션을 따르도록 하고 글로벌 클라이언트로서의 기능을 지원하도록 할 수 있습니다.
참고
단, 이 기능을 사용하면 301 상태의 PermanentRedirect
오류를 수신할 때 실패한 요청이 수정된 지역으로 재시도되므로 지연 시간이 늘어날 수 있습니다. 이 기능은 버킷의 지역을 미리 모르는 경우에만 사용해야 합니다.
Amazon S3 스트리밍 및 버퍼링된 응답
v3 SDK는 잠재적으로 큰 응답을 버퍼링하지 않는 것을 선호합니다. 이는 v2에서는 a를 반환했지만 Buffer
v3에서는 a를 반환하는 Amazon S3 GetObject
Stream
작업에서 흔히 발생합니다.
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.