Усиливать.Хранилище: Есть ли способ перечислить только файлы в моем ведре?

#android #amazon-s3 #aws-amplify

Вопрос:

Я пытаюсь перечислить все файлы в своем ведре через:

 Amplify.Storage.list("",
    result -> {
        for (StorageItem item : result.getItems()) {
            Log.i("MyAmplifyApp", "File: "   item.getKey()   ", Hash: "   item.getETag());
        }
    },
    error -> Log.e("MyAmplifyApp", "List failure", error)
);
 

Но меня интересуют только файлы, а не каталоги. Как мне это сделать?

Ответ №1:

Я не смог найти определенного решения своей проблемы. Вот самое близкое решение, которое я написал:

 Amplify.Storage.list("",
    result -> {
        for (StorageItem item : result.getItems()) {
            if(item.getSize() == 0) {
                Log.i(TAG, "File is empty, skip: "   item.getKey());
                continue;
            }
            Log.i("MyAmplifyApp", "File: "   item.getKey()   ", Hash: "   item.getETag());
        }
    }
    error -> Log.e("MyAmplifyApp", "List failure", error)
);
 

Это просто игнорирует все StorageItem , размер которых равен нулю байтов. Это работает в моем случае, потому что, помимо каталогов, меня также не интересуют пустые файлы.