Een blob uploaden met JavaScript of TypeScript
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:
- uploaden (niet-parallelle uploadmethode)
- uploadData
- uploadFile (alleen beschikbaar in Node.js runtime)
- uploadStream (alleen beschikbaar in Node.js runtime)
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': '2022-07-18',
}
}
// 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 = {
// '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);
}
Het instellen van de toegangslaag is alleen toegestaan voor blok-blobs. U kunt de toegangslaag voor een blok-blob instellen op Hot
, Cool
of Archive
Cold
. Als u de toegangslaag wilt Cold
instellen, 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):
- Uploaden vanuit het lokale bestandspad voor JavaScript of TypeScript
- Uploaden vanuit buffer voor JavaScript of TypeScript
- Uploaden vanuit stream voor JavaScript of TypeScript
- Uploaden vanuit tekenreeks voor JavaScript of TypeScript
- Uploaden met overdrachtsopties voor JavaScript of TypeScript
- Uploaden met indextags voor JavaScript of TypeScript
- Uploaden met toegangslaag voor JavaScript of TypeScript
Clientbibliotheekbronnen
Zie ook
- Azure Blob-gegevens beheren en zoeken met blobindextags
- Blob-indextags gebruiken om gegevens te beheren en te zoeken in Azure Blob Storage
Gerelateerde inhoud
- Dit artikel maakt deel uit van de ontwikkelaarshandleiding voor Blob Storage voor JavaScript/Typescript. Zie de volledige lijst met artikelen over ontwikkelaarshandleidingen in Uw JavaScript-/Typescript-app bouwen voor meer informatie.