簡體   English   中英

AWS S3 listFiles-如何獲取目錄路徑?

[英]AWS S3 listFiles - How can i get directory path?

是否可以從s3存儲桶中獲取所有文件名? 在我本地的spring boot項目中,我寫了類似的東西,並且可以正常工作。

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中添加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.
}

獲取文件密鑰后,即可下載它。 我希望這可以幫助你。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM