Delen via


Een blob uploaden met JavaScript

In dit artikel wordt beschreven hoe u een blob uploadt met behulp van de Azure Storage-clientbibliotheek voor JavaScript. U kunt gegevens uploaden naar een blok-blob vanuit een bestandspad, een stroom, een buffer of een tekenreeks. U kunt ook blobs uploaden met indextags.

Vereisten

  • In de voorbeelden in dit artikel wordt ervan uitgegaan dat u al een project hebt ingesteld voor gebruik met de Azure Blob Storage-clientbibliotheek voor JavaScript. Zie Aan de slag met Azure Blob Storage en JavaScript voor meer informatie over het instellen van uw project, inclusief pakketinstallatie, het importeren van modules en het maken van een geautoriseerd clientobject voor gebruik met gegevensbronnen.
  • Het autorisatiemechanisme moet machtigingen hebben om een uploadbewerking uit te voeren. Zie de autorisatierichtlijnen voor de volgende REST API-bewerkingen voor meer informatie:

Gegevens uploaden naar een blok-blob

U kunt een van de volgende methoden gebruiken om gegevens te uploaden naar een blok-blob:

Elk van deze methoden kan worden aangeroepen met behulp van een BlockBlobClient-object .

Een blok-blob uploaden vanuit een bestandspad

In het volgende voorbeeld wordt een blok-blob geüpload vanuit een lokaal bestandspad:

// 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);
}

Een blok-blob uploaden vanuit een stream

In het volgende voorbeeld wordt een blok-blob geüpload door een leesbare stream te maken en de stream te uploaden:

// 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);
}

Een blok-blob uploaden vanuit een buffer

In het volgende voorbeeld wordt een blok-blob vanuit een Node.js buffer geüpload:

// 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);
}

Een blok-blob uploaden vanuit een tekenreeks

In het volgende voorbeeld wordt een blok-blob vanuit een tekenreeks geüpload:

// 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);
}

Een blok-blob uploaden met configuratieopties

U kunt configuratieopties voor clientbibliotheek definiëren bij het uploaden van een blob. Deze opties kunnen worden afgestemd om de prestaties te verbeteren, de betrouwbaarheid te verbeteren en de kosten te optimaliseren. De codevoorbeelden in deze sectie laten zien hoe u configuratieopties instelt met behulp van de interface BlockBlobParallelUploadOptions en hoe u deze opties als parameter doorgeeft aan een aanroep van de uploadmethode.

Opties voor gegevensoverdracht opgeven bij uploaden

U kunt eigenschappen configureren in BlockBlobParallelUploadOptions om de prestaties voor gegevensoverdrachtbewerkingen te verbeteren. De volgende tabel bevat de eigenschappen die u kunt configureren, samen met een beschrijving:

Eigenschappen Beschrijving
blockSize De maximale blokgrootte die moet worden overgedragen voor elke aanvraag als onderdeel van een uploadbewerking.
concurrency Het maximum aantal parallelle aanvragen dat op elk gewenst moment wordt uitgegeven als onderdeel van één parallelle overdracht.
maxSingleShotSize Als de grootte van de gegevens kleiner is dan of gelijk is aan deze waarde, wordt deze geüpload in één put in plaats van opgesplitst in segmenten. Als de gegevens in één opname worden geüpload, wordt de blokgrootte genegeerd. De standaardwaarde is 256 MiB.

In het volgende codevoorbeeld ziet u hoe u waarden instelt voor BlockBlobParallelUploadOptions en de opties opneemt als onderdeel van een aanroep van de uploadmethode. De waarden in de voorbeelden zijn niet bedoeld als aanbeveling. Als u deze waarden goed wilt afstemmen, moet u rekening houden met de specifieke behoeften van uw app.

// 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);
}

Zie Prestaties afstemmen voor uploads en downloads met JavaScript voor meer informatie over het afstemmen van opties voor het afstemmen van gegevensoverdracht.

Een blok-blob uploaden met indextags

Blob-indextags categoriseren gegevens in uw opslagaccount met behulp van tagkenmerken met sleutelwaarde. Deze tags worden automatisch geïndexeerd en weergegeven als doorzoekbare multidimensionale index om eenvoudig gegevens te vinden.

In het volgende voorbeeld wordt een blok-blob geüpload met indextags die zijn ingesteld met behulp van 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': '2023-06-01',
    }
  }

  // Create blob client from container client
  const blockBlobClient = containerClient.getBlockBlobClient(blobName);

  // Upload blob with index tags
  await blockBlobClient.uploadFile(localFilePath, uploadOptions);
}

De toegangslaag van een blob instellen bij uploaden

U kunt de toegangslaag van een blob instellen bij uploaden met behulp van de interface BlockBlobParallelUploadOptions . In het volgende codevoorbeeld ziet u hoe u de toegangslaag instelt bij het uploaden van een 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 = {
    tier: 'Cool',
  }

  // Create blob client from container client
  const blockBlobClient = containerClient.getBlockBlobClient(blobName);

  // Upload blob to cool tier
  await blockBlobClient.uploadFile(localFilePath, uploadOptions);
}

Het instellen van de toegangslaag is alleen toegestaan voor blok-blobs. U kunt de toegangslaag voor een blok-blob instellen op Hot, Coolof ArchiveCold. Als u de toegangslaag wilt Coldinstellen, moet u een minimale clientbibliotheekversie van 12.13.0 gebruiken.

Zie het overzicht van Access-lagen voor meer informatie over toegangslagen.

Resources

Zie de volgende resources voor meer informatie over het uploaden van blobs met behulp van de Azure Blob Storage-clientbibliotheek voor JavaScript.

REST API-bewerkingen

De Azure SDK voor JavaScript bevat bibliotheken die zijn gebaseerd op de Azure REST API, zodat u kunt communiceren met REST API-bewerkingen via bekende JavaScript-paradigma's. De clientbibliotheekmethoden voor het uploaden van blobs gebruiken de volgende REST API-bewerkingen:

Codevoorbeelden

Codevoorbeelden uit dit artikel bekijken (GitHub):

Clientbibliotheekbronnen

Zie ook