Blobtároló törlése és visszaállítása TypeScript használatával
Ez a cikk bemutatja, hogyan törölhet tárolókat az Azure Storage JavaScript-ügyfélkódtárával. Ha engedélyezte a tárolók helyreállítható törlését, visszaállíthatja a törölt tárolókat.
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 blobtároló törléséhez vagy egy helyreállíthatóan törölt tároló visszaállítá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:
Tároló törlése
A TypeScriptben lévő tároló törléséhez hozzon létre egy BlobServiceClientet vagy ContainerClientet, majd használja az alábbi módszerek egyikét:
- BlobServiceClient.deleteContainer
- ContainerClient.Töröl
- ContainerClient.deleteIfExists
A tároló törlése után legalább 30 másodpercig nem hozhat létre azonos nevű tárolót. Ha egy azonos nevű tárolót próbál létrehozni, a 409-ben megadott HTTP-hibakód (ütközés) meghiúsul. A tárolón vagy a blobokon található egyéb műveletek a 404-ben (nem található) hibakóddal meghiúsulnak.
Tároló törlése a BlobServiceClient használatával
Az alábbi példa törli a megadott tárolót. Tároló törlése a BlobServiceClient használatával:
// delete container immediately on blobServiceClient
async function deleteContainerImmediately(
blobServiceClient: BlobServiceClient,
containerName: string
): Promise<ContainerDeleteResponse> {
return await blobServiceClient.deleteContainer(containerName);
}
Tároló törlése a ContainerClient használatával
Az alábbi példa bemutatja, hogyan törölheti az összes olyan tárolót, amelynek a neve egy megadott előtaggal kezdődik egy ContainerClient használatával.
async function deleteContainersWithPrefix(
blobServiceClient: BlobServiceClient,
prefix: string
): Promise<void> {
const containerOptions: ServiceListContainersOptions = {
// only delete containers not deleted
includeDeleted: false,
includeMetadata: false,
includeSystem: true,
prefix
};
for await (const containerItem of blobServiceClient.listContainers(
containerOptions
)) {
try {
const containerClient: ContainerClient =
blobServiceClient.getContainerClient(containerItem.name);
const containerDeleteMethodOptions: ContainerDeleteMethodOptions = {};
await containerClient.delete(containerDeleteMethodOptions);
console.log(`deleted ${containerItem.name} container - success`);
} catch (err: unknown) {
if (err instanceof Error) {
console.log(
`deleted ${containerItem.name} container - failed - ${err.message}`
);
}
}
}
}
Törölt tároló visszaállítása
Ha a tároló helyreállítható törlése engedélyezve van egy tárfiókhoz, előfordulhat, hogy a tároló és tartalma a törlés után, a megadott megőrzési időn belül helyreáll. Helyreállíthatóan törölt tárolót blobServiceClient-objektum használatával állíthat vissza:
- BlobServiceClient.undeleteContainer
Az alábbi példa megkeres egy törölt tárolót, lekéri a törölt tároló verzióazonosítóját, majd átadja az azonosítót az undeleteContainer metódusnak a tároló visszaállításához.
// Undelete specific container - last version
async function undeleteContainer(
blobServiceClient: BlobServiceClient,
containerName: string
): Promise<void> {
// version to undelete
let containerVersion: string | undefined;
const containerOptions: ServiceListContainersOptions = {
includeDeleted: true,
prefix: containerName
};
// container listing returns version (timestamp) in the ContainerItem
for await (const containerItem of blobServiceClient.listContainers(
containerOptions
)) {
// if there are multiple deleted versions of the same container,
// the versions are in asc time order
// the last version is the most recent
if (containerItem.name === containerName) {
containerVersion = containerItem.version as string;
}
}
if (containerVersion !== undefined) {
const serviceUndeleteContainerOptions: ServiceUndeleteContainerOptions = {};
const {
containerClient,
containerUndeleteResponse
}: {
containerClient: ContainerClient;
containerUndeleteResponse: ContainerUndeleteResponse;
} = await blobServiceClient.undeleteContainer(
containerName,
containerVersion,
// optional/new container name - if unused, original container name is used
//newContainerName
serviceUndeleteContainerOptions
);
// Check delete
if (containerUndeleteResponse.errorCode)
throw Error(containerUndeleteResponse.errorCode);
// undelete was successful
console.log(`${containerName} is undeleted`);
// do something with containerClient
// ...
// containerClient.listBlobsFlat({ includeMetadata: true,
// includeSnapshots: false,
// includeTags: true,
// includeVersions: false,
// prefix: ''});
}
}
Források
Ha többet szeretne megtudni egy tároló törléséről a JavaScripthez készült Azure Blob Storage ügyfélkódtár használatával, 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 tároló törlésére vagy visszaállítására szolgáló ügyfélkódtár-metódusok a következő REST API-műveleteket használják:
Kódminták
Ügyfélkódtár erőforrásai
Lásd még
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: