【问题标题】:How to delete particular folder from AWS S3 using amplify in kotlin?如何在 kotlin 中使用 amplify 从 AWS S3 中删除特定文件夹?
【发布时间】:2020-12-22 19:20:40
【问题描述】:

在 AWS 控制台中,我在公共旧版 AWS S3 存储桶中有 folder/file。 我想从中删除文件夹。

我可以从下面的文件夹中删除特定文件

 Amplify.Storage.remove(
            "folder/file",
            { result ->
                progress.hide()
                Log.i("MyAmplifyApp", "Successfully removed: " + result.key)
              
            },
            { error ->
          
                Log.e("MyAmplifyApp", "Remove failure", error)
            }
        )

文件夹中的文件列表

folder/file
folder/file1
folder/file2
folder/file3

但我想删除文件夹中的所有文件。

提前致谢!!!

【问题讨论】:

  • 您有存储在 S3 存储桶中的文件名列表吗??

标签: android amazon-web-services kotlin amazon-s3 aws-amplify


【解决方案1】:

如果你有一个文件名列表,那么你可以一个一个地传递它们,如下所示。 这将从 AWS S3 中一一删除文件。删除所有文件后, 该文件夹也将消失。

// fileList contains file, file1, file2, file3 etc.
for (String file : fileList) {
    Amplify.Storage.remove("folder/"+file, result -> {
        Log.i("MyAmplifyApp", "Successfully removed: " + result.getKey());
    }, error -> {
        Log.e("MyAmplifyApp", "Remove failure: ", error);
    });
}

更新:

您可以按文件夹获取文件列表,然后逐个删除它们。这 当文件夹下没有键时,文件夹将不再存在。

Amplify.Storage.list("folder/", result1 -> {
    for (StorageItem item : result1.getItems()) {
        Amplify.Storage.remove(item.getKey(),
            result -> Log.i("MyAmplifyApp", "Successfully removed: " + result.getKey()),
            error -> Log.e("MyAmplifyApp", "Remove failure", error)
        );
    }
}, error -> Log.e("MyAmplifyApp", "List failure", error));

【讨论】:

  • 我想在单个请求中删除文件夹,而不是使用文件列表
  • @NensiKasundra 没有在单个请求中删除文件夹的方法。帮助你自己here
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-27
  • 2022-11-18
  • 2018-12-20
  • 1970-01-01
  • 2016-01-06
  • 2019-07-22
相关资源
最近更新 更多