Из названия somefolder
я предполагаю, что описываемый вами "объект" является "папкой", а не файлом.
doesObjectExist(String bucketName, String objectName)
Этот тест для конкретного объекта с ключом objectName
.
listObjects(String bucketName, String prefix)
Возвращает список всех объектов, ключ которых начинается с prefix
.
Это два совершенно разных теста.
Если высоздала папку с помощью консоли S3 , тогда s3.doesObjectExists("demo", "somefolder/")
было бы верно - обратите внимание на косую черту - но «папки» в S3 не существуют как значимый объект, и это на самом деле не является действительнымиспользование s3.doesObjectExist()
.
Консоль отобразит папку somefolder
только по одной причине: поскольку в корзине существует один или несколько объектов с префиксом ключа somefolder/
.Но чтобы упростить навигацию в сегменте без структуры, консоль позволяет создавать внешний вид структуры путем «создания папок» ... который фактически создает 0-байтовый объект с /
, добавляемым в конец любого имени, которое выпредоставляется (но консоль подавляет отображение самого объекта).Эти объекты не служат никакой другой цели, кроме консольной навигации.Загруженный программным способом объект с ключом pics/cat.jpg
по-прежнему будет вызывать появление в консоли «папки» pics
без необходимости сначала создавать этот объект, подобный папке-заполнителю ... поэтому наличие или отсутствие этихОбъекты не имеют смысла проверять, есть ли такая «папка» в корзине.