Aracılığıyla paylaş


TypeScript ile blobu silme ve geri yükleme

Bu makalede JavaScript için Azure Depolama istemci kitaplığıyla blobların nasıl silineceği ve bekletme süresi boyunca geçici olarak silinen blobların nasıl geri yükleneceği gösterilmektedir.

Önkoşullar

  • Bu makaledeki örneklerde JavaScript için Azure Blob Depolama istemci kitaplığıyla çalışmak üzere ayarlanmış bir projeniz olduğu varsayılır. Paket yükleme, modülleri içeri aktarma ve veri kaynaklarıyla çalışacak yetkili bir istemci nesnesi oluşturma gibi projenizi ayarlama hakkında bilgi edinmek için bkz. Azure Blob Depolama ve TypeScript'i kullanmaya başlama.
  • Yetkilendirme mekanizmasının bir blobu silme veya geçici olarak silinmiş bir blobu geri yükleme izinleri olmalıdır. Daha fazla bilgi edinmek için aşağıdaki REST API işlemleri için yetkilendirme kılavuzuna bakın:

Blobu silme

Not

Depolama hesabı için blob geçici silme etkinleştirildiğinde, istemci kitaplığı yöntemlerini kullanarak kalıcı silme işlemi gerçekleştiremezsiniz. Bu makaledeki yöntemler kullanılarak, geçici olarak silinen blob, blob sürümü veya anlık görüntü saklama süresi dolana kadar kullanılabilir durumda kalır ve kalıcı olarak silinir. Temel alınan REST API işlemi hakkında daha fazla bilgi edinmek için bkz . Blobu Silme (REST API).

Blobu silmek için bir BlobClient oluşturun ve şu yöntemlerden birini çağırın:

Aşağıdaki örnek bir blobu siler.

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}`);
  }
}

Aşağıdaki örnek, varsa bir blobu siler.

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}`);
  }
}

Silinen blobu geri yükleme

Blob'u geçici silme, sistemdeki silinen verileri belirli bir süre boyunca koruyarak tek bir blob'u ve sürümlerini, anlık görüntülerini ve meta verilerini yanlışlıkla silmelere veya üzerine yazmalara karşı korur. Saklama süresi boyunca, blob’u silindiği andaki durumuna geri yükleyebilirsiniz. Saklama süresi dolduktan sonra blob kalıcı olarak silinir. Blob geçici silme hakkında daha fazla bilgi için bkz . Bloblar için geçici silme.

Geçici olarak silinen bir blobu veya anlık görüntüyü geri yüklemek için Azure Depolama istemci kitaplıklarını kullanabilirsiniz.

Sürüm oluşturma devre dışı bırakıldığında geçici olarak silinen nesneleri geri yükleme

Silinen blobları geri yüklemek için bir BlobClient oluşturun ve aşağıdaki yöntemi çağırın:

Bu yöntem, geçici olarak silinen blobları ve onunla ilişkili silinmiş anlık görüntüleri geri yükler. Silinmemiş bir blob için bu yöntemi çağırmanın hiçbir etkisi yoktur.

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}`);
  }
}

Kaynaklar

JavaScript için Azure Blob Depolama istemci kitaplığını kullanarak blobları silme ve silinen blobları geri yükleme hakkında daha fazla bilgi edinmek için aşağıdaki kaynaklara bakın.

REST API işlemleri

JavaScript için Azure SDK, Azure REST API'sinin üzerinde derlenmiş kitaplıklar içerir ve tanıdık JavaScript paradigmalarıyla REST API işlemleriyle etkileşim kurmanızı sağlar. Blobları silmek ve silinen blobları geri yüklemek için istemci kitaplığı yöntemleri aşağıdaki REST API işlemlerini kullanır:

  • Blobu Silme (REST API)
  • Blobu Geri Alma (REST API)

Kod örnekleri

İstemci kitaplığı kaynakları

Ayrıca bkz.