Holen Sie sich eine Liste der S3-Dateien mit ListObjectsV2Request (AWS SDK für Java)

Überblick

Iterator, um eine Liste aller Dateien zu erhalten

import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.model.ListObjectsV2Request;
import com.amazonaws.services.s3.model.S3ObjectSummary;
import lombok.val;

import java.util.*;
import java.util.stream.Stream;
import java.util.stream.StreamSupport;

class S3ObjectSummaryIterator implements Iterator<S3ObjectSummary> {

    private final AmazonS3 client;
    private final ListObjectsV2Request request;
    private final Queue<S3ObjectSummary> summaries = new LinkedList<>();
    private boolean isTruncated = false;

    S3ObjectSummaryIterator(AmazonS3 client, ListObjectsV2Request request) {
        this.client = client;
        this.request = request;
        fetch();
    }

    private void fetch() {
        val result = this.client.listObjectsV2(this.request);
        summaries.addAll(result.getObjectSummaries());
        this.isTruncated = result.isTruncated();
        if (result.isTruncated()) {
            request.setContinuationToken(result.getNextContinuationToken());
        }
    }

    @Override
    public boolean hasNext() {
        if (summaries.isEmpty() && isTruncated) {
            fetch();
        }
        return !summaries.isEmpty();
    }

    @Override
    public S3ObjectSummary next() {
        return summaries.poll();
    }

    public static Stream<S3ObjectSummary> stream(AmazonS3 client, ListObjectsV2Request request) {
        val iterator = new S3ObjectSummaryIterator(client, request);
        return StreamSupport.stream(Spliterators.spliteratorUnknownSize(iterator, Spliterator.ORDERED), false);
    }

}

Referenz

Recommended Posts

Holen Sie sich eine Liste der S3-Dateien mit ListObjectsV2Request (AWS SDK für Java)
Rufen Sie eine Liste mit MBean-Informationen für Java-Anwendungen ab
Holen Sie sich die S3-Objektgröße mit AWS SDK for Ruby
[AWS SDK für Java] Legen Sie die Wiederholungsrichtlinie für den S3-Client fest
Richten Sie signierte Cookies (für CloudFront) mit benutzerdefinierten Richtlinien mithilfe des AWS SDK für Java ein
Eine Liste der rawValues für UITextContentType.
Liste der Java-Objekte sortieren
Verschlüsseln Sie Daten, die mit AWS SDK für Java / SSE-KMS in S3 hochgeladen wurden
Hochladen / Herunterladen / Löschen von Daten in S3 mithilfe von Amazon S3 Client Builder mit AWS SDK für Java
[Java] Listen- / Kartenelemente mit Iterator abrufen
Liste der Download-Ziele für Oracle Java
Holen Sie sich Zeitstempel mit dem Azure BlobStorage Java SDK
[Java] [ibatis] So erhalten Sie 1-zu-N-Beziehungsdatensätze mit List <Map <>>
Ich habe ein Diff-Tool für Java-Dateien erstellt
Blockinformationen erhalten Sie mit dem Java SDK von Hyperledger Iroha
Bis Sie ein Java-Programm mit dem für Windows lokalen AWS SDK ausführen
Eine Sammlung einfacher Fragen für Java-Anfänger
Code zum Löschen aller Dateien mit dem angegebenen Präfix in AWS S3 (Java)
Überprüfen Sie das ID-Token eines von AWS Cognito in Java authentifizierten Benutzers
Senden Sie einen Job an AWS Batch mit Java (Eclipse)
[Java-Grundlagen] Lassen Sie uns ein Dreieck mit einer for-Anweisung erstellen
Rufen Sie den Azure App Service für die Java-Konfiguration mit System.getEnv () ab.
Holen Sie sich eine Liste der Klassen in einem Guava-spezifischen Paket
Geben Sie eine Liste der Cron-Einstellungen für alle Benutzer aus.
Java Häufig verwendete Anweisungsliste (für Anfänger und Anfänger)
Anmeldeinformationen, auf die das AWS SDK für Java standardmäßig verweist
Benachrichtigen Sie Slack of AWS-Rechnungen täglich mit Lambda für Ruby
Bereitstellen einer Java-Umgebung mit Windows Subsystem für Linux (WSL)
Die Geschichte der Erstellung einer Task-Management-Anwendung mit Swing, Java
Ich möchte eine Liste mit Kotlin und Java erstellen!
Implementierung eines mathematischen Syntaxanalysators durch rekursive absteigende Syntaxanalysemethode (Java)
Erstellen Sie einen SlackBot mit AWS Lambda & API Gateway in Java
Versuchen Sie Spark Submit to EMR mit AWS SDK für Java
Untersucht, wie Dienste mit Watson SDK für Java aufgerufen werden
[Java] So suchen Sie mit der Methode includes nach Werten in einem Array (oder einer Liste)
Zugriff auf den S3-Bucket mithilfe der SSE-KMS-Verschlüsselung in der EC2-IAM-Rollenumgebung (AWS SDK für Java)
[Java1.8 +] Mit LocalDate das Datum des nächsten × Tages abrufen
Java, JS (jQuery) und Ajax. Holen Sie sich einen bestimmten Wert von JSON.
Behandeln Sie die Geschäftslogik für eine Reihe von Entitäten in einer Java-Klasse
Untersuchen Sie die Liste der in AWS Lambda + Java verfügbaren Schriftarten
Sortieren einer Liste mit einem Array vom Typ int als Element (Java) (Comparator)
[Details] Implementierung von Consumer-Anwendungen mit der Kinesis Client Library für Java
"Bundle-Installation" verursacht viele Git-Unterschiede für Gem-Dateien
Eine Geschichte über das Erreichen der League Of Legends-API mit JAVA
Verwandeln Sie ein Array von Strings in eine Liste von Ganzzahlen in Java
Rufen Sie die öffentliche URL der privaten Datei von Flickr in Java ab
Bis INSERT S3 Objekt in EC2 DB mit Lambda @ java: AWS
Überschreiben Sie den gleichnamigen Upload mit dem BOX SDK (Java).
So überprüfen Sie den Inhalt der Java-Zeichenfolge mit fester Länge