이 문서에서는 JavaScript용 Azure Storage 클라이언트 라이브러리를 사용하여 Blob을 다운로드하는 방법을 보여 줍니다. 로컬 파일 경로, 스트림 또는 텍스트 문자열을 비롯한 다양한 대상에 Blob 데이터를 다운로드할 수 있습니다.
필수 조건
- 이 문서의 예제에서는 JavaScript용 Azure Blob Storage 클라이언트 라이브러리로 작업하도록 프로젝트가 이미 설정되어 있다고 가정합니다. 패키지 설치, 모듈 가져오기, 데이터 리소스 작업을 위한 권한 있는 클라이언트 개체 만들기 등 프로젝트를 설정하는 방법에 대한 자세한 내용은 Azure Blob Storage 및 JavaScript 시작을 참조하세요.
- 권한 부여 메커니즘에는 다운로드 작업을 수행할 수 있는 권한이 있어야 합니다. 자세한 내용은 다음 REST API 작업에 대한 권한 부여 지침을 참조하세요.
Blob 다운로드
다음 메서드를 사용하여 BLOB을 다운로드할 수 있습니다.
- BlobClient.download
- BlobClient.downloadToBuffer(Node.js 런타임에서만 사용 가능)
- BlobClient.downloadToFile(Node.js 런타임에서만 사용 가능)
파일 경로에 다운로드
다음 예제에서는 BlobClient.downloadToFile 메서드와 함께 파일 경로를 사용하여 Blob을 다운로드합니다. 이 메서드는 Node.js 런타임에서만 사용할 수 있습니다.
async function downloadBlobToFile(containerClient, blobName, localFilePath) {
const blobClient = containerClient.getBlobClient(blobName);
await blobClient.downloadToFile(localFilePath);
}
스트림으로 다운로드
다음 예에서는 Node.js 쓰기 가능한 스트림 개체를 만든 다음 BlobClient.download 메서드를 사용하여 해당 스트림으로 파이핑하여 Blob을 다운로드합니다.
async function downloadBlobAsStream(containerClient, blobName, writableStream) {
const blobClient = containerClient.getBlobClient(blobName);
const downloadResponse = await blobClient.download();
downloadResponse.readableStreamBody.pipe(writableStream);
}
문자열로 다운로드
다음 Node.js 예제에서는 BlobClient.download 메서드를 사용하여 Blob을 문자열로 다운로드합니다. Node.js에서 Blob 데이터는 readableStreamBody로 반환합니다.
async function downloadBlobToString(containerClient, blobName) {
const blobClient = containerClient.getBlobClient(blobName);
const downloadResponse = await blobClient.download();
const downloaded = await streamToBuffer(downloadResponse.readableStreamBody);
console.log('Downloaded blob content:', downloaded.toString());
}
function streamToBuffer(readableStream) {
return new Promise((resolve, reject) => {
const chunks = [];
readableStream.on('data', (data) => {
chunks.push(data instanceof Buffer ? data : Buffer.from(data));
});
readableStream.on('end', () => {
resolve(Buffer.concat(chunks));
});
readableStream.on('error', reject);
});
}
브라우저에서 JavaScript를 사용하는 경우 Blob 데이터는 promise blobBody로 반환됩니다. 자세한 내용은 BlobClient.download에서 브라우저 사용 예제를 참조하세요.
다운로드할 때 데이터 전송 유효성 검사
CRC64-NVME 사용한 전송 유효성 검사는 Azure Blob Storage 클라이언트 수준 데이터 무결성을 제공하므로 애플리케이션에서 보낸 데이터가 Azure 저장되고 읽은 데이터와 동일한지 확인할 수 있습니다. 사용하도록 설정하면 Blob SDK는 업로드 및 다운로드 작업 중에 CRC64-NVME 체크섬을 계산하고 유효성을 검사하는 반면, 서비스는 수신하고 반환하는 데이터에 대해 CRC64-NVME 체크섬을 독립적으로 계산하고 유효성을 검사합니다. 각 요청 및 전체 데이터 스트림에서 유효성 검사가 수행되므로 블록 업로드 또는 범위가 지정된 읽기와 같은 파티션에서 데이터가 전송되는 경우에도 전체 Blob이 확인됩니다. 자세한 내용은 구조적 본문 형식 을 참조하세요.
BlobClientConfig를 사용하여 클라이언트 수준에서 전송 유효성 검사 옵션을 정의할 수 있습니다. 이 옵션은 BlobClient 인스턴스에서 호출된 모든 메서드에 유효성 검사 옵션을 적용합니다. 또는 BlobDownloadOptions와 같은 옵션을 통해 작업 수준에서 전송 유효성 검사 옵션을 재정의할 수 있습니다.
const blobServiceClient = new BlobServiceClient(
`https://${account}.blob.core.windows.net`,
new DefaultAzureCredential(),
{
uploadContentChecksumAlgorithm: "StorageCrc64",
downloadContentChecksumAlgorithm: "StorageCrc64",
}
);
리소스
JavaScript용 Azure Blob Storage 클라이언트 라이브러리를 사용하여 Blob을 다운로드하는 방법에 대해 자세히 알아보려면 다음 리소스를 참조하세요.
코드 샘플
이 문서의 코드 샘플 보기(GitHub):
JavaScript 또는 TypeScript용 파일로 다운로드
JavaScript 또는 TypeScript용 스트리밍 다운로드
JavaScript 또는 TypeScript용 문자열로 다운로드
REST API 작업
JavaScript용 Azure SDK에는 Azure REST API를 기반으로 빌드되는 라이브러리가 포함되어 있으므로 익숙한 JavaScript 패러다임을 통해 REST API 작업과 상호 작용할 수 있습니다. Blob을 다운로드하기 위한 클라이언트 라이브러리 메서드는 다음 REST API 작업을 사용합니다.
- Blob 가져오기(REST API)
클라이언트 라이브러리 리소스
관련 콘텐츠
- 이 문서는 JavaScript/TypeScript용 Blob Storage 개발자 가이드의 일부입니다. 자세한 내용은 JavaScript/TypeScript 앱 빌드에서 개발자 가이드 문서의 전체 목록을 참조하세요.