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, 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();
}
}
Bei Verwendung des JSON-Schlüssels
$ ./gradlew run -Pargs="/path/to/key.json"
Wenn unbenutzt
$ ./gradlew run
Der Code für diese Zeit ist hier: Bleistift: https://github.com/nownabe/examples/tree/master/list-gcs-java
Recommended Posts