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


Blokkblob hozzáférési szintjének beállítása vagy módosítása JavaScript használatával

Ez a cikk bemutatja, hogyan állíthat be vagy módosíthat blobok hozzáférési szintjét blokkblobokhoz a JavaScripthez készült Azure Storage-ügyfélkódtárral.

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 blob hozzáférési szintjének beállításához szükséges engedélyekkel. További információkért tekintse meg az alábbi REST API-művelet engedélyezési útmutatóját:

Tudnivalók a blokkblobok hozzáférési szintjeiről

A tárolási igények költségeinek kezelése érdekében hasznos lehet az adatok rendszerezése annak alapján, hogy milyen gyakran és mennyi ideig kell megőrizni azokat. Az Azure Storage különböző hozzáférési szinteket kínál, így a blobadatok a használatuktól függően a legköltséghatékonyabb módon tárolhatók.

Blobadatok hozzáférési szintjei

Az Azure Storage hozzáférési szintjei a következők:

  • Gyakori elérésű réteg – A gyakran használt vagy módosított adatok tárolására optimalizált online réteg. A gyakori elérésű réteg a legmagasabb tárolási költségekkel rendelkezik, de a legalacsonyabb hozzáférési költségekkel.
  • Ritka elérésű réteg – Olyan online réteg, amely ritkán elért vagy módosított adatok tárolására van optimalizálva. A ritka elérésű rétegben lévő adatokat legalább 30 napig kell tárolni. A ritka elérésű réteg alacsonyabb tárolási és magasabb hozzáférési költségekkel rendelkezik a gyakori elérésű szinthez képest.
  • Hideg réteg – Olyan online réteg, amely ritkán használt vagy módosított adatok tárolására van optimalizálva. A nagyon ritka elérésű szinten lévő adatokat legalább 90 napig érdemes tárolni. A nagyon ritka elérésű hozzáférési szintnek a ritka elérésű szinthez képest alacsonyabbak a tárolási és magasabbak az elérési költségei.
  • Archív szint – Olyan offline réteg, amely ritkán elérhető adatok tárolására van optimalizálva, és amely rugalmas késési követelményekkel rendelkezik az órák sorrendjében. Az archív szinten lévő adatokat legalább 180 napig kell tárolni.

A hozzáférési szintekről további információt a blobadatok hozzáférési szintjei című témakörben talál.

Bár egy blob az Archív hozzáférési szinten van, offline állapotúnak minősül, és nem olvasható és nem módosítható. Egy archivált blob adatainak olvasásához vagy módosításához először rehidratálnia kell a blobot egy online szintre. Ha többet szeretne megtudni a blobok archiválási rétegről online szintre való rehidratálásáról, tekintse meg a Blob rehidratációt az Archív szintről.

Korlátozások

A hozzáférési szint beállítása csak blokkblobokon engedélyezett. A blokkblobok hozzáférési szintjének beállítására vonatkozó korlátozásokról további információt a Blobszint beállítása (REST API) című témakörben talál.

Feljegyzés

A hozzáférési szint JavaScript használatára való Cold beállításához a 12.13.0-s minimális ügyfélkódtár-verziót kell használnia.

Blob hozzáférési szintjének beállítása feltöltés közben

Blob adott hozzáférési szintre való feltöltéséhez használja a BlockBlobUploadOptionst. A tier tulajdonságválasztások a következők: Hot, Cool, Coldvagy Archive.

async function uploadWithAccessTier(containerClient) {

  // Create blob
  const timestamp = Date.now();
  const blobName = `myblob-${timestamp}`;
  console.log(`creating blob ${blobName}`);

  const fileContentsAsString = `Hello from a string`

  // upload blob to `Cool` access tier
  const uploadOptions = {

    // access tier setting
    // 'Hot', 'Cool', or 'Archive'
    tier: 'Cool',

    // other properties
    metadata: undefined,
    tags: undefined,
  }

  // Create blob client from container client
  const blockBlobClient = await containerClient.getBlockBlobClient(blobName);

  // Upload string
  await blockBlobClient.upload(fileContentsAsString, fileContentsAsString.length, uploadOptions);

  // Return client to continue with other operations
  return blockBlobClient;
}

Blob hozzáférési szintjének módosítása feltöltés után

Ha módosítani szeretné egy blob hozzáférési szintjét a tárba való feltöltés után, használja a setAccessTiert. A réteggel együtt beállíthatja a BlobSetTierOptions tulajdonság rehidratálási prioritását , hogy a blokkblobot kivonja egy archivált állapotból. A lehetséges értékek: High és Standard.

async function main(blockBlobClient) {

  // Get current access tier
  const { accessTier } = await blockBlobClient.getProperties();
  console.log(`Current access tier: ${accessTier}`);

  // 'Hot', 'Cool', or 'Archive'
  const newAccessTier = 'Cool';

  // Rehydrate priority: 'High' or 'Standard'
  const rehydratePriority = 'High';

  const result = await blockBlobClient.setAccessTier(
    newAccessTier,
    { rehydratePriority }
  );

  if (result?.errorCode == undefined) {
    console.log(`Change to access was successful`);
  } else {
    console.log(result);
  }
}

Blob másolása másik hozzáférési szintre

Használja a BlobClientet.beginCopyFromURL metódus egy blob másolásához. Ha módosítani szeretné a hozzáférési szintet a másolási művelet során, használja a BlobBeginCopyFromURLOptions tier tulajdonságot, és adjon meg egy másik hozzáférési szintet , mint a forrásblob.

async function copyBlobWithDifferentAccessTier(containerClient) {

  // create blob clients
  const sourceBlobClient = await containerClient.getBlobClient(originalBlob);
  const destinationBlobClient = await containerClient.getBlobClient(copyBlob);

  // start copy, access tiers include `Hot`, `Cool`, `Archive`
  const copyPoller = await destinationBlobClient.beginCopyFromURL(sourceBlobClient.url, { tier: 'Hot' });
  console.log('start copy from original to copy');

  // wait until done
  await copyPoller.pollUntilDone();
  console.log('copy finished')
}

Több blob hozzáférési szintjének módosítása köteg használatával

A köteg a blobokon végzett műveletek összesített készletét jelöli, például a törlést vagy a hozzáférési szint beállítását. Az egyes műveletek sikeres végrehajtásához a megfelelő hitelesítő adatokat kell megadnia. Ebben a példában ugyanazt a hitelesítő adatot használja a rendszer az ugyanabban a tárolóban lévő blobok halmazához.

BlobBatchClient létrehozása. Az ügyfél használatával hozzon létre egy köteget a createBatch() metódussal. Ha a köteg elkészült, küldje el a köteget feldolgozásra. A visszaadott struktúra használatával ellenőrizze, hogy az egyes blobok művelete sikeres volt-e.

async function main(containerClient) {

  // Prep array
  const blockBlobCount = 3;
  const blockBlobClients = new Array(blockBlobCount);

  // Create container and blobs in `Hot` tier
  await prepContainer(containerClient, blockBlobCount, blockBlobClients);

  // Blob batch client and batch
  const containerScopedBatchClient = containerClient.getBlobBatchClient();
  const blobBatch = containerScopedBatchClient.createBatch();

  // Assemble batch to set tier to `Cool` tier
  for (let i = 0; i < blockBlobCount; i++) {
    await blobBatch.setBlobAccessTier(blockBlobClients[i].url, sharedKeyCredential, "Cool", {});
  }

  // Submit batch request and verify response
  const resp = await containerScopedBatchClient.submitBatch(blobBatch, {});
  console.log(`Requested ${blockBlobCount}, batched ${resp.subResponses.length}, success ${resp.subResponsesSucceededCount}, failure ${resp.subResponsesFailedCount}`);

  // Examine each batch item
  for (let i = 0; i < blockBlobCount; i++) {

    // Check blob tier set properly
    const resp2 = await blockBlobClients[i].getProperties();
    console.log(`[${i}] access tier ${resp2.accessTier}, status ${resp.subResponses[i].status}, message ${resp.subResponses[i].statusMessage}`)
  }
}

Kódminták

Következő lépések