Abrufen der Google Cloud Storage-Objektliste in Java

Einführung

So rufen Sie die Google Cloud Storage-Objektliste in Java ab.

Es fiel mir schwer, einen einfachen Weg zu finden, um mich zu authentifizieren oder nur ein bestimmtes Verzeichnis zu erhalten: müde_gesicht:

build.gradle Nur "Google-Cloud-Speicher" ist in Ordnung.

build.gradle


apply plugin: 'java'
apply plugin: 'application'

repositories {
  mavenCentral()
}

dependencies {
    compile 'com.google.cloud:google-cloud-storage:0.9.4-beta'
}

mainClassName = "GCSList"

run {
    if (project.hasProperty('args')) {
        args project.args.split('\\s+')
    }
}

Code

Code, der eine Liste an Objekte in einem bestimmten Verzeichnis ausgibt.

Sie können jetzt den Pfad zum JSON-Schlüssel des Dienstkontos mit einem Befehlszeilenargument angeben. Wenn kein Argument vorhanden ist, wird das Standardkonto verwendet. [^ 1]

[^ 1]: So etwas wie "gcloud auth login"

src/main/java/GCSList.java


import com.google.auth.oauth2.ServiceAccountCredentials;
import com.google.cloud.Page;
import com.google.cloud.storage.Blob;
import com.google.cloud.storage.Bucket;
import com.google.cloud.storage.Storage;
import com.google.cloud.storage.StorageOptions;

import java.io.*;
import java.util.Iterator;

public class GCSList {
    private static final String BUCKET = "mybucket";
    private static final String PREFIX = "dir1/dir2/";

    public static void main(String args[]) throws IOException {
        Storage storage;
        if (args.length > 0) {
            storage = getStorageFromJsonKey(args[0]);
        } else {
            storage = StorageOptions.getDefaultInstance().getService();
        }

        Bucket bucket = storage.get(BUCKET);

        //Eingrenzen auf bestimmte Verzeichnisse
        Storage.BlobListOption option = Storage.BlobListOption.prefix(PREFIX);

        Page<Blob> blobs = bucket.list(option);
        Iterator<Blob> blobIterator = blobs.iterateAll();

        while (blobIterator.hasNext()) {
            System.out.println(blobIterator.next().getName());
        }
    }

    private static Storage getStorageFromJsonKey(String key) throws IOException {
        return StorageOptions.newBuilder()
                .setCredentials(ServiceAccountCredentials.fromStream(new FileInputStream(key)))
                .build()
                .getService();
    }
}

Lauf

Bei Verwendung des JSON-Schlüssels

$ ./gradlew run -Pargs="/path/to/key.json"

Wenn unbenutzt

$ ./gradlew run

abschließend

Der Code für diese Zeit ist hier: Bleistift: https://github.com/nownabe/examples/tree/master/list-gcs-java

Recommended Posts

Abrufen der Google Cloud Storage-Objektliste in Java
[IBM Cloud] Platzieren Sie die ISO-Datei im Objektspeicher
Wenden Sie den Google Java Style-Formatierer mit IntelliJ an
Erhalten Sie E-Mails mithilfe der Google Mail-API in Java
Holen Sie sich Google Fit API-Daten in Python
[GCP] Betreiben Sie Google Cloud Storage mit Python
In Dataflow implementiert, um die hierarchische Struktur von Google Drive in Google Cloud Storage zu kopieren
Ruft die EDINET-Codeliste in Python ab
Holen Sie sich die Cloud-Protokollierung in Python in 10 Minuten
Betreiben Sie den Cloud-Objektspeicher von Sakura von Python aus
Holen Sie sich nur Unterklassenelemente in eine Liste
Holen Sie sich ein Panoramabild in Google Street View
Holen Sie sich Bilder der Google Bildsuche in Originalgröße
Was tun, um eine Google-Tabelle in Python zu erhalten?
[Cloud-Funktionen] Dekomprimieren Sie automatisch im Speicher abgelegte GZIP-Dateien
[Python] Ruft die Liste der im Modul definierten Klassen ab
URL-Codierungsprozess in der Cloud Storage-Bibliothek von GAE / py
Python: Ruft eine Liste der Methoden für ein Objekt ab
Eine Geschichte, die mit ein wenig Einfallsreichtum mit Google Cloud Storage verknüpft ist
Nutzung von Google Cloud Storage (GCS) durch "GAE / Py"