Megosztás a következőn keresztül:


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:

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 Hothozzáférési szintjét a következőre állíthatja be: , Coolvagy ArchiveCold. 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 é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):

Ügyfélkódtár erőforrásai

Lásd még