Можно ли получить все имена файлов из ведра 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?




Прежде всего, вам необходимо подключиться к 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.
}
Получив ключ к вашему файлу, вы можете его скачать. Я надеюсь, это поможет вам.
Пожалуйста, посмотрите stackoverflow.com/questions/38051789/…. Надеюсь, ты получишь ответ.