Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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, från en ström, från en buffert eller från 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 .
Anmärkning
Azure Storage-klientbiblioteken stöder inte samtidiga skrivningar till samma blob. Om din app kräver att flera processer skrivs till samma blob bör du implementera en strategi för samtidighetskontroll för att ge en förutsägbar upplevelse. För att lära dig mer om samtidighetsstrategier, se Hantera samtidighet i Blob Storage.
Ladda upp en blockblob från en filsökväg
I följande exempel laddas en block-Blob upp från en lokal filvä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:
| Egendom | 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 steg 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, Coldeller Archive. Om du vill ange åtkomstnivån till Coldmå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:
- Ladda upp blob (REST API)
- Put 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 ström för JavaScript eller TypeScript
- Ladda upp kodsnuttar i 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.