Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
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.
Megjegyzés
Az Azure Storage-ügyfélkódtárak nem támogatják ugyanahhoz a blobhoz való egyidejű írást. Ha az alkalmazáshoz több folyamat írása szükséges ugyanahhoz a blobhoz, akkor az egyidejűség-vezérlés stratégiáját kell implementálnia, hogy kiszámítható élményt nyújtson. Az egyidejűségi stratégiákról további információt a Egyidejűség kezelése a Blob Storage-bancímű témakörben talál.
Upload a block blob from a file path
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);
}
Upload a block blob from a stream
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);
}
Upload a block blob from a string
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);
}
Upload a block blob with configuration options
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:
| Ingatlan / Tulajdon | 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.
Upload a block blob with index tags
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 egy blokkblobot tölt fel a BlockBlobParallelUploadOptions használatával, amelyhez indexcímkék vannak beállítva.
// 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);
}
A blob hozzáférési szintjének beállítása feltöltéskor
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 = {
// '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);
}
A hozzáférési szint beállítása csak blokkblobok esetén engedélyezett. A blokkblobok hozzáférési szintjét beállíthatja Hot, Cool, Cold vagy Archive értékre. A hozzáférési szint Coldbeá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:
Code samples
Kódminták megtekintése ebből a cikkből (GitHub):
- Feltöltés helyi fájl elérési útvonalról JavaScript vagy TypeScript esetén
- Feltöltés pufferből JavaScripthez vagy TypeScripthez
- Feltöltés streamből JavaScript vagy TypeScript
- Upload from string for JavaScript or TypeScript
- Feltöltés a JavaScript vagy a TypeScript átviteli lehetőségeivel
- Feltöltés JavaScript vagy TypeScript indexcímkével
- Feltöltés hozzáférési szinttel JavaScript vagy TypeScript esetén
Ügyfélkódtár erőforrásai
Lásd még
- Azure Blob-adatok kezelése és keresése blobindexcímkék használatával
- Blobindex-címkék használata az Azure Blob Storage-adatok kezeléséhez és kereséséhez
Kapcsolódó tartalom
- Ez a cikk a JavaScript/TypeScript Blob Storage fejlesztői útmutatójának része. További információkért tekintse meg a JavaScript/TypeScript-alkalmazás buildeléséhez kapcsolódó fejlesztői útmutatók teljes listáját.