是否可以从s3存储桶中获取所有文件名? 在我的本地spring boot项目中,我写了类似的东西,并且可以正常工作。
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());
}
}
在AWS上,我尝试了此方法,但是它不起作用。
org.springframework.boot.actuate.health.HealthIndicator
出什么问题了,如何从s3获取目录路径?
答案 0 :(得分:0)
首先,您需要连接到S3。为此,以下建议。 在您的pom中添加AWS API
<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.
}
获取文件密钥后,即可下载。 我希望这可以帮助你。