Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Este artigo mostra como transferir um blob utilizando a biblioteca de cliente do Armazenamento do Azure para JavaScript. Pode transferir dados de blobs para vários destinos, incluindo um caminho de ficheiro local, um fluxo de dados ou uma cadeia de texto.
Pré-requisitos
- Os exemplos neste artigo pressupõem que você já tenha um projeto configurado para trabalhar com a biblioteca de cliente do Armazenamento de Blobs do Azure para JavaScript. Para saber mais sobre como configurar seu projeto, incluindo instalação de pacotes, importação de módulos e criação de um objeto de cliente autorizado para trabalhar com recursos de dados, consulte Introdução ao Armazenamento de Blobs do Azure e JavaScript.
- O mecanismo de autorização deve ter permissões para executar uma operação de download. Para saber mais, consulte as diretrizes de autorização para a seguinte operação da API REST:
Transferir um blob
Você pode usar qualquer um dos seguintes métodos para baixar um blob:
- BlobClient.download
- BlobClient.downloadToBuffer (disponível apenas no ambiente de execução do Node.js)
- BlobClient.downloadToFile (apenas disponível no ambiente de execução do Node.js)
Transferir para um caminho de ficheiro
O exemplo a seguir baixa um blob usando um caminho de arquivo com o método BlobClient.downloadToFile . Este método só está disponível no tempo de execução do Node.js:
async function downloadBlobToFile(containerClient, blobName, localFilePath) {
const blobClient = containerClient.getBlobClient(blobName);
await blobClient.downloadToFile(localFilePath);
}
Download como um fluxo
O exemplo a seguir baixa um blob criando um objeto de fluxo gravável Node.js e, em seguida, canalizando para esse fluxo com o método BlobClient.download .
async function downloadBlobAsStream(containerClient, blobName, writableStream) {
const blobClient = containerClient.getBlobClient(blobName);
const downloadResponse = await blobClient.download();
downloadResponse.readableStreamBody.pipe(writableStream);
}
Transferir para uma string
O exemplo seguinte de Node.js transfere um blob como cadeia de caracteres utilizando o método BlobClient.download. No Node.js, os dados blob são devolvidos num 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);
});
}
Se estiver a trabalhar com JavaScript no navegador, os dados do blob são devolvidos numa Promise blobBody. Para saber mais, consulte o exemplo de uso para navegadores em BlobClient.download.
Validação da transferência de dados no download
A validação de transferência com CRC64-NVME proporciona integridade de dados ao nível do cliente para Armazenamento de Blobs do Azure, permitindo-lhe verificar se os dados enviados pela sua aplicação são os mesmos armazenados e lidos de Azure. Quando ativado, o Blob SDK calcula e valida somas de verificação CRC64-NVME durante as operações de upload e download, ao passo que o serviço calcula e valida, de forma independente, somas de verificação CRC64-NVME para os dados que recebe e devolve. A validação é realizada em cada pedido e em todo o fluxo de dados, garantindo que todo o blob é verificado mesmo quando os dados são transferidos em partições, como carregamentos de blocos ou leituras à distância. Consulte o Formato de Corpo Estruturado para mais detalhes.
As opções de validação de transferência podem ser definidas ao nível do cliente usando o BlobClientConfig, que aplica opções de validação a todos os métodos chamados a partir de uma instância BlobClient . Em alternativa, pode sobrescrever opções de validação de transferência ao nível da operação através de opções, como BlobDownloadOptions.
const blobServiceClient = new BlobServiceClient(
`https://${account}.blob.core.windows.net`,
new DefaultAzureCredential(),
{
uploadContentChecksumAlgorithm: "StorageCrc64",
downloadContentChecksumAlgorithm: "StorageCrc64",
}
);
Recursos
Para saber mais sobre como baixar blobs usando a biblioteca de cliente do Armazenamento de Blobs do Azure para JavaScript, consulte os recursos a seguir.
Amostras de código
Veja exemplos de código deste artigo (GitHub):
Transferir para ficheiro para JavaScript ou TypeScript
Download para streaming para JavaScript ou TypeScript
Transferir como string para JavaScript ou TypeScript
Operações da API REST
O SDK do Azure para JavaScript contém bibliotecas que se baseiam na API REST do Azure, permitindo que você interaja com operações da API REST por meio de paradigmas JavaScript familiares. Os métodos da biblioteca de cliente para baixar blobs usam a seguinte operação da API REST:
- Obter Blob (API REST)
Recursos da biblioteca do cliente
Conteúdos relacionados
- Este artigo faz parte do guia do desenvolvedor do Armazenamento de Blobs para JavaScript/TypeScript. Para saber mais, consulte a lista completa de artigos do guia do desenvolvedor em Crie seu aplicativo JavaScript/TypeScript.