Udostępnij za pośrednictwem


Usuwanie i przywracanie obiektu blob za pomocą języka TypeScript

W tym artykule pokazano, jak usuwać obiekty blob z biblioteką klienta usługi Azure Storage dla języka JavaScript oraz jak przywracać obiekty blob usunięte nietrwale w okresie przechowywania.

Wymagania wstępne

  • W przykładach w tym artykule założono, że masz już skonfigurowany projekt do pracy z biblioteką klienta usługi Azure Blob Storage dla języka JavaScript. Aby dowiedzieć się więcej o konfigurowaniu projektu, w tym instalacji pakietu, importowaniu modułów i tworzeniu autoryzowanego obiektu klienta do pracy z zasobami danych, zobacz Wprowadzenie do usługi Azure Blob Storage i TypeScript.
  • Mechanizm autoryzacji musi mieć uprawnienia do usuwania obiektu blob lub przywracania nietrwałego obiektu blob. Aby dowiedzieć się więcej, zobacz wskazówki dotyczące autoryzacji dla następujących operacji interfejsu API REST:

Usuwanie obiektu blob

Uwaga

Jeśli usuwanie nietrwałe obiektu blob jest włączone dla konta magazynu, nie można wykonać trwałego usuwania przy użyciu metod biblioteki klienta. Korzystając z metod w tym artykule, usunięty nietrwale obiekt blob, wersja obiektu blob lub migawka pozostaje dostępny do momentu wygaśnięcia okresu przechowywania, w którym momencie zostanie trwale usunięty. Aby dowiedzieć się więcej na temat podstawowej operacji interfejsu API REST, zobacz Usuwanie obiektu blob (interfejs API REST).

Aby usunąć obiekt blob, utwórz obiekt BlobClient , a następnie wywołaj jedną z następujących metod:

Poniższy przykład usuwa obiekt blob.

async function deleteBlob(
  containerClient: ContainerClient,
  blobName
): Promise<void> {
  // Create blob client from container client
  const blockBlobClient: BlockBlobClient =
    await containerClient.getBlockBlobClient(blobName);

  // include: Delete the base blob and all of its snapshots.
  // only: Delete only the blob's snapshots and not the blob itself.
  const options: BlobDeleteOptions = {
    deleteSnapshots: 'include' // or 'only'
  };
  const blobDeleteResponse: BlobDeleteResponse = await blockBlobClient.delete(
    options
  );

  if (!blobDeleteResponse.errorCode) {
    console.log(`deleted blob ${blobName}`);
  }
}

Poniższy przykład usuwa obiekt blob, jeśli istnieje.

async function deleteBlobIfItExists(
  containerClient: ContainerClient,
  blobName
): Promise<void> {
  // Create blob client from container client
  const blockBlobClient = await containerClient.getBlockBlobClient(blobName);

  // include: Delete the base blob and all of its snapshots.
  // only: Delete only the blob's snapshots and not the blob itself.
  const options: BlobDeleteOptions = {
    deleteSnapshots: 'include' // or 'only'
  };
  const blobDeleteIfExistsResponse: BlobDeleteIfExistsResponse =
    await blockBlobClient.deleteIfExists(options);

  if (!blobDeleteIfExistsResponse.errorCode) {
    console.log(`deleted blob ${blobName}`);
  }
}

Przywracanie usuniętego obiektu blob

Usunięcie nietrwałe obiektu blob chroni pojedynczy obiekt blob i jego poprawki, migawki i metadane przed przypadkowym usunięciem lub zastąpieniem przez utrzymanie usuniętych danych w systemie przez określony okres czasu. Podczas okresu przechowywania możesz przywrócić nietrwale usunięty obiekt blob do jego stanu w momencie usunięcia. Po wygaśnięciu okresu przechowywania obiekt blob zostanie trwale usunięty. Aby uzyskać więcej informacji na temat usuwania nietrwałego obiektu blob, zobacz Usuwanie nietrwałe dla obiektów blob.

Biblioteki klienta usługi Azure Storage umożliwiają przywrócenie nietrwałego obiektu blob lub migawki.

Przywracanie obiektów usuniętych nietrwale, gdy przechowywanie wersji jest wyłączone

Aby przywrócić usunięte obiekty blob, utwórz obiekt BlobClient , a następnie wywołaj następującą metodę:

Ta metoda przywraca nietrwałe usunięte obiekty blob i wszystkie usunięte migawki skojarzone z nim. Wywołanie tej metody dla obiektu blob, który nie został usunięty, nie ma wpływu.

async function undeleteBlob(
  containerClient: ContainerClient,
  blobName
): Promise<void> {
  // Create blob client from container client
  const blockBlobClient: BlockBlobClient =
    await containerClient.getBlockBlobClient(blobName);

  const options: BlobUndeleteOptions = {};
  const blobUndeleteResponse: BlobUndeleteResponse =
    await blockBlobClient.undelete(options);

  if (!blobUndeleteResponse.errorCode) {
    console.log(`undeleted blob ${blobName}`);
  }
}

Zasoby

Aby dowiedzieć się więcej na temat usuwania obiektów blob i przywracania usuniętych obiektów blob przy użyciu biblioteki klienta usługi Azure Blob Storage dla języka JavaScript, zobacz następujące zasoby.

Operacje interfejsu API REST

Zestaw Azure SDK dla języka JavaScript zawiera biblioteki, które bazują na interfejsie API REST platformy Azure, co umożliwia interakcję z operacjami interfejsu API REST za pomocą znanych paradygmatów języka JavaScript. Metody biblioteki klienta do usuwania obiektów blob i przywracania usuniętych obiektów blob używają następujących operacji interfejsu API REST:

Przykłady kodu

Zasoby biblioteki klienta

Zobacz też