如何使用kotlin中的放大功能从AWS S3中删除特定文件夹



在AWS控制台中,我在AWS S3 bucket的公共旧版本中有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

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

提前感谢

如果您有一个文件名列表,那么您可以按如下所示逐个传递它们。这将从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));

最新更新