Obtenir la liste des objets Google Cloud Storage en Java

introduction

Comment obtenir la liste d'objets Google Cloud Storage en Java.

J'ai eu du mal à trouver un moyen simple de m'authentifier ou d'obtenir uniquement un répertoire spécifique: fatigué_face:

build.gradle Il suffit de "google-cloud-storage".

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 qui génère une liste d'objets dans un répertoire spécifique.

Vous pouvez maintenant spécifier le chemin d'accès à la clé JSON pour le compte de service avec un argument de ligne de commande. S'il n'y a pas d'argument, le compte par défaut est utilisé. [^ 1]

[^ 1]: Quelque chose comme 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);

        //Se restreindre à des répertoires spécifiques
        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();
    }
}

Courir

Lors de l'utilisation de la clé JSON

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

Lorsqu'il n'est pas utilisé

$ ./gradlew run

en conclusion

Le code pour cette fois est ici: crayon: https://github.com/nownabe/examples/tree/master/list-gcs-java

Recommended Posts

Obtenir la liste des objets Google Cloud Storage en Java
[IBM Cloud] Placez le fichier ISO dans le stockage d'objets
Appliquer le formateur Google Java Style avec IntelliJ
Recevoir des e-mails à l'aide de l'API Gmail en Java
Obtenez les données de l'API Google Fit en Python
[GCP] Exploitez Google Cloud Storage avec Python
Implémenté dans Dataflow pour copier la structure hiérarchique de Google Drive vers Google Cloud Storage
Obtenir la liste de codes EDINET en Python
Obtenez Cloud Logging disponible en Python en 10 minutes
Exploitez le stockage d'objets cloud de Sakura à partir de Python
Obtenir uniquement les éléments de sous-classe dans une liste
Obtenez une image panoramique sur Google Street View
Obtenez des images Google Recherche d'images dans leur taille d'origine
Que faire pour obtenir une feuille de calcul Google en Python
[Cloud Functions] Décompresse automatiquement les fichiers GZIP placés dans le stockage
[python] Récupère la liste des classes définies dans le module
Processus de codage d'URL dans la bibliothèque Cloud Storage de GAE / py
Python: obtenir une liste de méthodes pour un objet
Une histoire liée à Google Cloud Storage avec un peu d'ingéniosité
Utilisation de Google Cloud Storage (GCS) par "GAE / Py"