Ladda upp en blob med JavaScript eller TypeScript
Den här artikeln visar hur du laddar upp en blob med hjälp av Azure Storage-klientbiblioteket för JavaScript. Du kan ladda upp data till en blockblob från en filsökväg, en ström, en buffert eller en textsträng. Du kan också ladda upp blobar med indextaggar.
Förutsättningar
- Exemplen i den här artikeln förutsätter att du redan har ett projekt konfigurerat för att fungera med Azure Blob Storage-klientbiblioteket för JavaScript. Mer information om hur du konfigurerar projektet, inklusive paketinstallation, import av moduler och skapande av ett auktoriserat klientobjekt för att arbeta med dataresurser finns i Kom igång med Azure Blob Storage och JavaScript.
- Auktoriseringsmekanismen måste ha behörighet att utföra en uppladdningsåtgärd. Mer information finns i auktoriseringsvägledningen för följande REST API-åtgärder:
Ladda upp data till en blockblob
Du kan använda någon av följande metoder för att ladda upp data till en blockblob:
- upload (icke-parallell uppladdningsmetod)
- uploadData
- uploadFile (endast tillgängligt i Node.js runtime)
- uploadStream (endast tillgängligt i Node.js runtime)
Var och en av dessa metoder kan anropas med hjälp av ett BlockBlobClient-objekt .
Ladda upp en blockblob från en filsökväg
I följande exempel laddas en blockblob upp från en lokal filsökväg:
// containerClient: ContainerClient object
// blobName: string, includes file extension if provided
// localFilePath: fully qualified path and file name
async function uploadBlobFromLocalPath(containerClient, blobName, localFilePath){
// Create blob client from container client
const blockBlobClient = containerClient.getBlockBlobClient(blobName);
await blockBlobClient.uploadFile(localFilePath);
}
Ladda upp en blockblob från en dataström
I följande exempel laddas en blockblob upp genom att skapa en läsbar ström och ladda upp strömmen:
// containerClient: ContainerClient object
// blobName: string, includes file extension if provided
// readableStream: Readable stream, for example, a stream returned from fs.createReadStream()
async function uploadBlobFromReadStream(containerClient, blobName, readableStream) {
// Create blob client from container client
const blockBlobClient = containerClient.getBlockBlobClient(blobName);
// Upload data to block blob using a readable stream
await blockBlobClient.uploadStream(readableStream);
}
Ladda upp en blockblob från en buffert
I följande exempel laddas en blockblob upp från en Node.js buffert:
// containerClient: ContainerClient object
// blobName: string, includes file extension if provided
// buffer: blob contents as a buffer, for example, from fs.readFile()
async function uploadBlobFromBuffer(containerClient, blobName, buffer) {
// Create blob client from container client
const blockBlobClient = containerClient.getBlockBlobClient(blobName);
// Upload buffer
await blockBlobClient.uploadData(buffer);
}
Ladda upp en blockblob från en sträng
I följande exempel laddas en blockblob upp från en sträng:
// containerClient: ContainerClient object
// blobName: string, includes file extension if provided
// fileContentsAsString: blob content
async function uploadBlobFromString(containerClient, blobName, fileContentsAsString){
// Create blob client from container client
const blockBlobClient = containerClient.getBlockBlobClient(blobName);
await blockBlobClient.upload(fileContentsAsString, fileContentsAsString.length);
}
Ladda upp en blockblob med konfigurationsalternativ
Du kan definiera konfigurationsalternativ för klientbibliotek när du laddar upp en blob. Dessa alternativ kan justeras för att förbättra prestanda, förbättra tillförlitligheten och optimera kostnaderna. Kodexemplen i det här avsnittet visar hur du ställer in konfigurationsalternativ med hjälp av gränssnittet BlockBlobParallelUploadOptions och hur du skickar dessa alternativ som en parameter till ett uppladdningsmetodanrop.
Ange alternativ för dataöverföring vid uppladdning
Du kan konfigurera egenskaper i BlockBlobParallelUploadOptions för att förbättra prestanda för dataöverföringsåtgärder. I följande tabell visas de egenskaper som du kan konfigurera, tillsammans med en beskrivning:
Property | beskrivning |
---|---|
blockSize |
Den maximala blockstorlek som ska överföras för varje begäran som en del av en uppladdningsåtgärd. |
concurrency |
Det maximala antalet parallella begäranden som utfärdas vid en viss tidpunkt som en del av en enda parallell överföring. |
maxSingleShotSize |
Om datastorleken är mindre än eller lika med det här värdet laddas den upp i en enda uppsättning i stället för att delas upp i segment. Om data laddas upp i ett enda skott ignoreras blockstorleken. Standardvärdet är 256 MiB. |
I följande kodexempel visas hur du anger värden för BlockBlobParallelUploadOptions och inkluderar alternativen som en del av ett uppladdningsmetodanrop. Värdena som anges i exemplen är inte avsedda att vara en rekommendation. Om du vill justera dessa värden korrekt måste du ta hänsyn till appens specifika behov.
// containerClient: ContainerClient object
// blobName: string, includes file extension if provided
// localFilePath: fully qualified path and file name
async function uploadWithTransferOptions(containerClient, blobName, localFilePath) {
// Specify data transfer options
const uploadOptions = {
blockSize: 4 * 1024 * 1024, // 4 MiB max block size
concurrency: 2, // maximum number of parallel transfer workers
maxSingleShotSize: 8 * 1024 * 1024, // 8 MiB initial transfer size
}
// Create blob client from container client
const blockBlobClient = containerClient.getBlockBlobClient(blobName);
// Upload blob with transfer options
await blockBlobClient.uploadFile(localFilePath, uploadOptions);
}
Mer information om hur du justerar dataöverföringsalternativ finns i Prestandajustering för uppladdningar och nedladdningar med JavaScript.
Ladda upp en blockblob med indextaggar
Blobindextaggar kategoriserar data i ditt lagringskonto med hjälp av taggattribut för nyckelvärde. Dessa taggar indexeras automatiskt och exponeras som ett sökbart flerdimensionellt index för att enkelt hitta data.
I följande exempel laddas en blockblob upp med indextaggar inställda med BlockBlobParallelUploadOptions:
// containerClient: ContainerClient object
// blobName: string, includes file extension if provided
// localFilePath: fully qualified path and file name
async function uploadWithIndexTags(containerClient, blobName, localFilePath) {
// Specify index tags for blob
const uploadOptions = {
tags: {
'Sealed': 'false',
'Content': 'image',
'Date': '2022-07-18',
}
}
// Create blob client from container client
const blockBlobClient = containerClient.getBlockBlobClient(blobName);
// Upload blob with index tags
await blockBlobClient.uploadFile(localFilePath, uploadOptions);
}
Ange åtkomstnivån för en blob vid uppladdning
Du kan ange åtkomstnivån för en blob vid uppladdning med hjälp av gränssnittet BlockBlobParallelUploadOptions . Följande kodexempel visar hur du anger åtkomstnivån när du laddar upp en blob:
// containerClient: ContainerClient object
// blobName: string, includes file extension if provided
// localFilePath: fully qualified path and file name
async function uploadWithAccessTier(containerClient, blobName, localFilePath) {
// Specify access tier
const uploadOptions = {
// 'Hot', 'Cool', 'Cold', or 'Archive'
tier: 'Cool',
}
// Create blob client from container client
const blockBlobClient = containerClient.getBlockBlobClient(blobName);
// Upload blob to cool tier
await blockBlobClient.uploadFile(localFilePath, uploadOptions);
}
Det går bara att ange åtkomstnivån för blockblobar. Du kan ange åtkomstnivån för en blockblob till Hot
, Cool
, Cold
eller Archive
. Om du vill ange åtkomstnivån till Cold
måste du använda en lägsta klientbiblioteksversion på 12.13.0.
Mer information om åtkomstnivåer finns i Översikt över åtkomstnivåer.
Resurser
Mer information om hur du laddar upp blobar med hjälp av Azure Blob Storage-klientbiblioteket för JavaScript finns i följande resurser.
REST API-åtgärder
Azure SDK för JavaScript innehåller bibliotek som bygger på Azure REST API, så att du kan interagera med REST API-åtgärder via välbekanta JavaScript-paradigm. Klientbiblioteksmetoderna för att ladda upp blobar använder följande REST API-åtgärder:
- Placera blob (REST API)
- Placera block (REST API)
Kodexempel
Visa kodexempel från den här artikeln (GitHub):
- Ladda upp från en lokal filsökväg för JavaScript eller TypeScript
- Ladda upp från buffert för JavaScript eller TypeScript
- Ladda upp från dataström för JavaScript eller TypeScript
- Ladda upp från sträng för JavaScript eller TypeScript
- Ladda upp med överföringsalternativ för JavaScript eller TypeScript
- Ladda upp med indextaggar för JavaScript eller TypeScript
- Ladda upp med åtkomstnivå för JavaScript eller TypeScript
Klientbiblioteksresurser
Se även
- Hantera och hitta Azure Blob-data med blobindextaggar
- Använda blobindextaggar för att hantera och hitta data i Azure Blob Storage
Relaterat innehåll
- Den här artikeln är en del av utvecklarguiden för Blob Storage för JavaScript/Typescript. Mer information finns i den fullständiga listan över utvecklarguideartiklar i Skapa din JavaScript/Typescript-app.