API yalnızca bir kerede tek bir nesneyi silmeyi destekler. Pek çok HTTP isteğini kullanarak veya birçok silme isteğini toplu olarak uygulayarak çok sayıda silme talebinde bulunabilirsiniz. Joker karakterleri veya benzerlerini kullanarak birden fazla nesneyi silmek için API çağrısı yoktur. Nesnelerin tümünü belirli bir önekle silmek için, nesneleri listelemeniz ve ardından desene uyan her nesne için bir silme araması yapmanız gerekir.
Komut satırı yardımcı programı gsutil, "gs: // bucket/dir/**." Yolunu silmek istediğinizde tam olarak bunu yapar. Bu desenle eşleşen nesnelerin listesini getirir, sonra silme yapar. bunların her biri için çağrı Eğer hızlı bir çözüm gerekiyorsa
, her zaman Java programı exec gsutil'i olabilir İşte
başka vaka herkesin kullanabileceği istediği yukarıdaki cevaba denk gelen koddur..:
public void deleteFolder(String bucket, String folderName) throws CoultNotDeleteFile {
try
{
ListResult list = gcsService.list(bucket, new ListOptions.Builder().setPrefix(folderName).setRecursive(true).build());
while(list.hasNext())
{
ListItem item = list.next();
gcsService.delete(new GcsFilename(file.getBucket(), item.getName()));
}
}
catch (IOException e)
{
//Error handling
}
}
Nesne listelemesinin sonuç olduğunu unutmayın. Tutarlı, yani bu yaklaşımın, eğer yakın zamanda yaratılmışlarsa, tüm nesneleri yakalamak için garanti edilmediği anlamına gelir.
Tamam, ben bu şekilde yapmak zorunda düşündüm. Çok teşekkürler! – shieldstroy