Прежде чем назвать этот дубликат, пожалуйста, прочитайте мой вопрос.
Я нашел два метода проверки, существует ли папка в S3 из EMR , но мне интересно, какой из них правильный.Чтобы получить учетные данные компьютера EMR (например, из приложения Spark) для доступа к S3, я сделал: new InstanceProfileCredentialsProvider().getCredentials
.
Использование AmazonS3.doesObjectExist(s3Bucket, s3Prefix)
s3.doesObjectExist("my-bucket", "my-directory")
возвращает ложь, но это правда s3.doesObjectExist("my-bucket", "my-directory/")
возвращает истину s3.doesObjectExist("my-bucket", "my-directory2")
возвращает ложь, но это правда s3.doesObjectExist("my-bucket", "my-directory2/")
возвращает ложь, но этоверно
А пока вот мое исправление: s3.get.listObjectsV2(s3_bucket, s3_object).getKeyCount > 0
.Вам не нужно извлекать все результаты, соответствующие этому запросу, а только первое окно, проверяя, не является ли оно пустым.
Почему (1) возвращает false, когда (2) вернуть истину?Какое решение вы посоветуете?