AWS S3 listFiles - как получить путь к каталогу?

Можно ли получить все имена файлов из ведра s3? В моем локальном проекте весенней загрузки я написал что-то вроде, и это работает.

File[] files = new File("/myfiles").listFiles();
    for (File file : files) {
        if (file.isFile()) {
            filesDir.add(file.getName());
        }
    }

На AWS я пробую это, но это не работает.

File[] files = new File("https://s3.eu-central-1.amazonaws.com/bucket_name/myfiles/").listFiles();
        for (File file : files) {
            if (file.isFile()) {
                filesDir.add(file.getName());
            }
        }

Что не так, как я могу получить путь к каталогу из s3?

Пожалуйста, посмотрите stackoverflow.com/questions/38051789/…. Надеюсь, ты получишь ответ.

A M S Rejuan 06.11.2018 12:39
stackoverflow.com/a/7465152/4067759
therealprashant 06.11.2018 12:40
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
2
2 392
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Прежде всего, вам необходимо подключиться к S3. Для этого предлагаем следующее ниже. Добавьте в свой pom API AWS

<dependency>
    <groupId>com.amazonaws</groupId>
    <artifactId>aws-java-sdk</artifactId>
    <version>1.11.113</version>
</dependency>

Вы создадите экземпляр сервиса AmazonS3. Нравится:

BasicAWSCredentials credentials = new BasicAWSCredentials("ACCESS KEY", "SECRET KEY");
AmazonS3 service AmazonS3Client.builder()
             .withClientConfiguration(clientConfiguration)
             .withEndpointConfiguration(new EndpointConfiguration("YOUR_ENDPOINT", "YOUR_REGION"))
             .withCredentials(new AWSStaticCredentialsProvider(credentials))
             .build();

После подключения вы можете получить информацию о сегменте, используя только что созданный сервис.

ListObjectsV2Request req = new ListObjectsV2Request().withBucketName("bucket").withPrefix("path_your_file_or_folder");
ListObjectsV2Result result = service.listObjectsV2(req)
for (S3ObjectSummary object: result .getObjectSummaries()){
    String key = object.getKey(); //your object it's here.
}

Получив ключ к вашему файлу, вы можете его скачать. Я надеюсь, это поможет вам.

Другие вопросы по теме