Blob feltöltése JavaScript 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 szeretne többet 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 JavaScript 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:
// 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);
}
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:
// 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);
}
Blokkblob feltöltése pufferből
Az alábbi példa egy blokkblobot tölt fel egy Node.js pufferből:
// 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);
}
Blokkblob feltöltése sztringből
Az alábbi példa egy blokkblobot tölt fel egy sztringből:
// 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);
}
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.
// 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);
}
Az adatátviteli lehetőségek finomhangolásáról további információt a Feltöltések és letöltések teljesítményhangolása JavaScript használatával című témakörben talál.
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:
// 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);
}
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:
// 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);
}
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 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 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 ismert JavaScript-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