Aracılığıyla paylaş


JavaScript veya TypeScript ile blob kapsayıcısı silme ve geri yükleme

Bu makalede JavaScript için Azure Depolama istemci kitaplığıyla kapsayıcıların nasıl silineceği gösterilmektedir. Kapsayıcı geçici silmeyi etkinleştirdiyseniz silinen kapsayıcıları geri yükleyebilirsiniz.

Ö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ışmak üzere yetkili bir istemci nesnesi oluşturma gibi projenizi ayarlama hakkında bilgi edinmek için bkz. Azure Blob Depolama ve JavaScript'i kullanmaya başlama.
  • Yetkilendirme mekanizmasının blob kapsayıcısını silme veya geçici olarak silinen kapsayıcıyı 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:

Kapsayıcı silme

Kapsayıcıyı silmek için BlobServiceClient sınıfından aşağıdaki yöntemi kullanın:

ContainerClient sınıfından aşağıdaki yöntemi kullanarak da bir kapsayıcıyı silebilirsiniz:

Kapsayıcıyı sildikten sonra, en az 30 saniye boyunca aynı ada sahip bir kapsayıcı oluşturamazsınız. Aynı ada sahip bir kapsayıcı oluşturma girişimi HTTP hata koduyla 409 (Conflict)başarısız oluyor. Kapsayıcıdaki veya içerdiği bloblardaki diğer işlemler HTTP hata koduyla 404 (Not Found)başarısız olur.

Aşağıdaki örnek, belirtilen kapsayıcıyı silmek için bir BlobServiceClient nesnesi kullanır:

async function deleteContainer(blobServiceClient, containerName) {
  
  return await blobServiceClient.deleteContainer(containerName);
}

Aşağıdaki örnekte, belirtilen ön ekle başlayan tüm kapsayıcıların nasıl silineceği gösterilmektedir:

async function deleteContainersWithPrefix(blobServiceClient, prefix) {

  const containerOptions = {
    includeDeleted: false,
    includeMetadata: false,
    includeSystem: true,
    prefix
  }

  for await (const containerItem of blobServiceClient.listContainers(containerOptions)) {

    try{
      const containerClient = blobServiceClient.getContainerClient(containerItem.name);

      await containerClient.delete();
  
      console.log(`Deleted ${containerItem.name} container - success`);
    }catch(ex){
      console.log(`Deleted ${containerItem.name} container - failed - ${ex.message}`);
    }
  }
}

Silinen kapsayıcıyı geri yükleme

Depolama hesabı için kapsayıcı geçici silme etkinleştirildiğinde, kapsayıcı ve içeriği silindikten sonra, belirttiğiniz saklama süresi içinde kurtarılabilir. BlobServiceClient nesnesi kullanarak geçici olarak silinen bir kapsayıcıyı geri yükleyebilirsiniz:

Aşağıdaki örnek silinmiş bir kapsayıcı bulur, silinen kapsayıcının sürüm kimliğini alır ve ardından bu kimliği kapsayıcıyı undeleteContainer geri yüklemek için yöntemine geçirir.

async function undeleteContainer(blobServiceClient, containerName) {
  
  // Version to restore
  let containerVersion;

  const containerOptions = {
    includeDeleted: true,
    prefix: containerName
  }

  // Find the deleted container and restore it
  for await (const containerItem of blobServiceClient.listContainers(containerOptions)) {
    if (containerItem.name === containerName) {
      containerVersion = containerItem.version;
    }
  }

  const containerClient = await blobServiceClient.undeleteContainer(
    containerName,
    containerVersion,
  );
}

Kaynaklar

JavaScript için Azure Blob Depolama istemci kitaplığını kullanarak kapsayıcı silme hakkında daha fazla bilgi edinmek için aşağıdaki kaynaklara bakın.

Kod örnekleri

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. Kapsayıcıyı silmek veya geri yüklemek için istemci kitaplığı yöntemleri aşağıdaki REST API işlemlerini kullanır:

İstemci kitaplığı kaynakları

Ayrıca bkz.

  • Bu makale, JavaScript/Typescript için Blob Depolama geliştirici kılavuzunun bir parçasıdır. Daha fazla bilgi edinmek için JavaScript/Typescript uygulamanızı derleme makalelerinde geliştirici kılavuzu makalelerinin tam listesine bakın.