如何以编程方式删除Cloud Storage Bucket中文件夹中的所有内容

桑耶夫

我在云端存储分区中有一个名为“ myfolder”的文件夹。它具有a.log,b.log等文件。如何以编程方式从存储桶中的文件夹中删除所有这些文件。

我想要一些Java示例代码来做到这一点。

维沙尔·约翰(Vishal John)

我通过从生产代码库中摘录来构造此样本。请注意setPrefix(folder)用于过滤存储桶中内容的用法

因此,逻辑是从存储桶中获取所有内容,并根据文件夹名称进行过滤,然后将其删除。

import java.io.IOException;

import com.google.api.client.googleapis.auth.oauth2.GoogleCredential;
import com.google.api.client.http.*;
import com.google.api.client.http.javanet.NetHttpTransport;
import com.google.api.client.json.JsonFactory;
import com.google.api.client.json.jackson2.JacksonFactory;

import com.google.api.services.storage.Storage;
import com.google.api.services.storage.model.*;

public void deleteFolder(String bucketName, String folder) throws IOException {
    HttpTransport httpTransport = new NetHttpTransport();
    JsonFactory jsonFactory = new JacksonFactory();
    GoogleCredential.Builder credentialBuilder = new GoogleCredential.Builder();
    final GoogleCredential credential = credentialBuilder
            .setTransport(httpTransport).setJsonFactory(jsonFactory)
            .setServiceAccountId("YourServiceAccountId")
            // .setServiceAccountPrivateKeyFromP12File(new File("PrivateKeyFile"))
            .build();
    Storage storage = new Storage(httpTransport, jsonFactory,
        new HttpRequestInitializer() {
            public void initialize(HttpRequest request)
                    throws IOException {
                credential.initialize(request);
            }
        });
    // PLEASE NOTE THE USAGE OF setPrefix(folder) TO FILTER ITEMS IN FOLDER
    Objects objectsInFolder = storage.objects().list(bucketName).setPrefix(folder).execute();
    for(StorageObject object : objectsInFolder.getItems()) {
        storage.objects().delete(bucketName, object.getName()).execute();
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何以编程方式删除文件?

Flutter:Firebase Cloud Storage中文件夹中的文件列表

从Google Cloud Storage Bucket下载文件夹

删除Google Cloud Storage文件夹下的所有文件

在Google Cloud Storage中以编程方式创建和删除存储桶

从 Google Cloud Storage 中删除大文件夹

从Java删除“文件夹”中或Google Cloud Bucket中带有前缀的所有文件

如何替换GCP Cloud Storage中文件名中的所有空格?

删除子文件夹中的所有内容

如何以编程方式从DataTable中删除DataColumn

如何以编程方式从菜单中删除项目?

如何以编程方式从 Nautilus 书签中添加/删除项目?

如何以编程方式从NSString中删除CDATA?

如何以编程方式从动态 JObject 中删除属性

如何以编程方式删除Django中的群组

如何以编程方式在模块中添加或删除名称

如何授予对Amazon S3中文件夹的所有子文件夹的访问权限?

如何在没有 rclone 的情况下以编程方式直接从 Digital Ocean Storage 上传到 Google Cloud Storage

如何删除目录中没有特定文件夹及其内容的所有内容

按计划以编程方式删除变量文件夹的所有内容

如何忽略Mercurial中文件夹下的所有内容

如何以编程方式修改现有apk中Assets文件夹中的数据?

使用带有Java的JSON API在Google Cloud Storage中插入对象(作为文件夹)

如何确保从子文件夹中删除除 *.bin 文件之外的所有内容?

如何以编程方式从mipmap文件夹加载图像?

如何在Firebase Storage中创建文件夹?

删除文件夹中所有文件,但名称中包含以下内容的文件除外

如何以编程方式删除Windows中损坏的快捷方式

如何通过python从Google Storage以编程方式下载文件?