Blob feltöltése TypeScript használatával
Ez a cikk bemutatja, hogyan tölthet fel blobot a JavaScripthez készült Azure Storage-ügyfélkódtár használatával. Adatokat feltölthet egy blokkblobba egy fájl elérési útjáról, egy streamből, egy pufferből vagy egy szöveges sztringből. Indexcímkéket tartalmazó blobokat is feltölthet.
Előfeltételek
- A cikkben szereplő példák feltételezik, hogy már rendelkezik egy projekttel, amely a JavaScripthez készült Azure Blob Storage ügyfélkódtárral dolgozik. Ha többet szeretne megtudni a projekt beállításáról, beleértve a csomagtelepítést, a modulok importálását és egy engedélyezett ügyfélobjektum létrehozását az adaterőforrások használatához, olvassa el az Azure Blob Storage és a TypeScript használatának első lépéseit.
- Az engedélyezési mechanizmusnak rendelkeznie kell a feltöltési művelet végrehajtásához szükséges engedélyekkel. További információkért tekintse meg az alábbi REST API-műveletek engedélyezési útmutatóját:
Adatok feltöltése blokkblobba
Az alábbi módszerek bármelyikével feltölthet adatokat egy blokkblobba:
- feltöltés (nem párhuzamos feltöltési módszer)
- uploadData
- uploadFile (csak Node.js futtatókörnyezetben érhető el)
- uploadStream (csak Node.js futtatókörnyezetben érhető el)
Ezek a metódusok egy BlockBlobClient objektummal hívhatók meg.
Blokkblob feltöltése fájlelérési útból
Az alábbi példa egy blokkblobot tölt fel egy helyi fájl elérési útjáról:
async function uploadBlobFromLocalPath(
containerClient: ContainerClient,
blobName: string,
localFilePath: string
): Promise<void> {
// Create blob client from container client
const blockBlobClient: BlockBlobClient = containerClient.getBlockBlobClient(blobName);
await blockBlobClient.uploadFile(localFilePath);
}
Blokkblob feltöltése streamből
Az alábbi példa egy olvasható stream létrehozásával és a stream feltöltésével tölt fel egy blokkblobot:
async function uploadBlobFromReadStream(
containerClient: ContainerClient,
blobName: string,
readStream: fs.ReadStream
): Promise<void> {
// Create blob client from container client
const blockBlobClient: BlockBlobClient = containerClient.getBlockBlobClient(blobName);
await blockBlobClient.uploadStream(readStream);
}
Blokkblob feltöltése pufferből
Az alábbi példa egy blokkblobot tölt fel egy Node.js pufferből:
async function uploadBlobFromBuffer(
containerClient: ContainerClient, blobName: string, buffer: Buffer
): Promise<void> {
// Create blob client from container client
const blockBlobClient: BlockBlobClient = containerClient.getBlockBlobClient(blobName);
// Upload buffer
await blockBlobClient.uploadData(buffer);
}
Blokkblob feltöltése sztringből
Az alábbi példa egy blokkblobot tölt fel egy sztringből:
async function uploadBlobFromString(
containerClient: ContainerClient,
blobName: string,
fileContents: string
): Promise<void> {
// Create blob client from container client
const blockBlobClient: BlockBlobClient = containerClient.getBlockBlobClient(blobName);
await blockBlobClient.upload(fileContents, fileContents.length);
}
Blokkblob feltöltése konfigurációs beállításokkal
Blob feltöltésekor megadhatja az ügyfélkódtár konfigurációs beállításait. Ezek a lehetőségek a teljesítmény javítása, a megbízhatóság növelése és a költségek optimalizálása érdekében hangolhatók. Az ebben a szakaszban található kódpéldák bemutatják, hogyan állíthat be konfigurációs beállításokat a BlockBlobParallelUploadOptions felületen, és hogyan adhatja át ezeket a beállításokat paraméterként egy feltöltési metódus hívásának.
Adatátviteli beállítások megadása feltöltéskor
A BlockBlobParallelUploadOptions tulajdonságai konfigurálhatók az adatátviteli műveletek teljesítményének javítása érdekében. Az alábbi táblázat felsorolja a konfigurálható tulajdonságokat, valamint egy leírást:
Tulajdonság | Leírás |
---|---|
blockSize |
A maximális blokkméret, amely a feltöltési művelet részeként továbbítandó minden kéréshez. |
concurrency |
A párhuzamos kérelmek maximális száma, amelyeket egy adott időpontban egyetlen párhuzamos átvitel részeként bocsátanak ki. |
maxSingleShotSize |
Ha az adatok mérete kisebb vagy egyenlő ennél az értéknél, akkor a rendszer nem adattömbökre bontva, hanem egyetlen put-ban tölti fel őket. Ha az adatok feltöltése egyetlen lövéssel történik, a blokk mérete figyelmen kívül lesz hagyva. Az alapértelmezett érték 256 MiB. |
Az alábbi kódpéldából megtudhatja, hogyan állíthatja be a BlockBlobParallelUploadOptions értékeit, és hogyan adhatja meg a beállításokat egy feltöltési metódushívás részeként. A mintákban megadott értékek nem javaslatok. Ezeknek az értékeknek a megfelelő finomhangolásához figyelembe kell vennie az alkalmazás adott igényeit.
async function uploadWithTransferOptions(
containerClient: ContainerClient,
blobName: string,
localFilePath: string
): Promise<void> {
// Specify data transfer options
const uploadOptions: BlockBlobParallelUploadOptions = {
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: BlockBlobClient = containerClient.getBlockBlobClient(blobName);
await blockBlobClient.uploadFile(localFilePath, uploadOptions);
}
Blokkblob feltöltése indexcímkékkel
A blobindexcímkék kulcs-érték címkeattribútumok használatával kategorizálják a tárfiók adatait. Ezek a címkék automatikusan indexelhetők, és kereshető többdimenziós indexként jelennek meg az adatok egyszerű keresése érdekében.
Az alábbi példa feltölt egy blokkblobot indexcímkéket tartalmazó blokkblobot a BlockBlobParallelUploadOptions használatával:
async function uploadBlobWithIndexTags(
containerClient: ContainerClient,
blobName: string,
localFilePath: string
): Promise<void> {
// Specify index tags for blob
const uploadOptions: BlockBlobParallelUploadOptions = {
tags: {
'Sealed': 'false',
'Content': 'image',
'Date': '2023-06-01',
}
};
// Create blob client from container client
const blockBlobClient: BlockBlobClient = containerClient.getBlockBlobClient(blobName);
await blockBlobClient.uploadFile(localFilePath, uploadOptions);
}
Blob hozzáférési szintjének beállítása feltöltésre
A blobok hozzáférési szintjét a BlockBlobParallelUploadOptions felületen állíthatja be feltöltéskor. Az alábbi példakód bemutatja, hogyan állíthatja be a hozzáférési szintet egy blob feltöltésekor:
async function uploadBlobWithAccessTier(
containerClient: ContainerClient,
blobName: string,
localFilePath: string
): Promise<void> {
// Upload blob to 'Cool' access tier
const uploadOptions: BlockBlobParallelUploadOptions = {
tier: 'Cool'
};
// Create blob client from container client
const blockBlobClient: BlockBlobClient = containerClient.getBlockBlobClient(blobName);
await blockBlobClient.uploadFile(localFilePath, uploadOptions);
}
A hozzáférési szint beállítása csak blokkblobok esetén engedélyezett. A blokkblobok Hot
hozzáférési szintjét a következőre állíthatja be: , Cool
vagy Archive
Cold
. A hozzáférési szint Cold
beállításához a 12.13.0-s minimális ügyfélkódtár-verziót kell használnia.
A hozzáférési szintekről további információt az Access-szintek áttekintésében talál.
Források
Ha többet szeretne megtudni a blobok JavaScripthez és TypeScripthez készült Azure Blob Storage-ügyfélkódtár használatával történő feltöltéséről, tekintse meg az alábbi erőforrásokat.
REST API-műveletek
Az Azure SDK for JavaScript és TypeScript olyan kódtárakat tartalmaz, amelyek az Azure REST API-ra épülnek, lehetővé téve a REST API-műveletek használatát ismerős nyelvi paradigmákon keresztül. A blobok feltöltéséhez használt ügyfélkódtár-metódusok a következő REST API-műveleteket használják:
- Blob elhelyezése (REST API)
- Blokk elhelyezése (REST API)
Kódminták
Kódminták megtekintése ebből a cikkből (GitHub):
- Feltöltés helyi fájl elérési útjáról
- Feltöltés pufferből
- Feltöltés streamből
- Feltöltés sztringből
- Feltöltés átviteli lehetőségekkel
- Feltöltés indexcímkékkel
- Feltöltés hozzáférési szinttel