在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));