From a95fb4dbe3ce196e947b031fd0df6729e59b4b95 Mon Sep 17 00:00:00 2001 From: Eric Perlman Date: Sun, 20 Nov 2022 20:26:13 +0000 Subject: [PATCH 1/4] Minor tweaks to work with Google cloud storage. --- build.gradle | 2 +- src/main/java/com/glencoesoftware/bioformats2raw/Converter.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/build.gradle b/build.gradle index a0384f4f..0135a6b6 100644 --- a/build.gradle +++ b/build.gradle @@ -47,7 +47,7 @@ dependencies { implementation 'javax.xml.bind:jaxb-api:2.3.0' implementation group: 'ch.qos.logback', name: 'logback-classic', version: '1.3.14' implementation group: 'ch.qos.logback', name: 'logback-core', version: '1.3.14' - + implementation 'com.google.cloud:google-cloud-nio:0.123.10' implementation 'org.openpnp:opencv:4.7.0-0' implementation 'me.tongfei:progressbar:0.9.0' diff --git a/src/main/java/com/glencoesoftware/bioformats2raw/Converter.java b/src/main/java/com/glencoesoftware/bioformats2raw/Converter.java index f5ddba84..4a299bab 100644 --- a/src/main/java/com/glencoesoftware/bioformats2raw/Converter.java +++ b/src/main/java/com/glencoesoftware/bioformats2raw/Converter.java @@ -128,7 +128,7 @@ public class Converter implements Callable { private volatile Path inputPath; private volatile String outputLocation; - private Map outputOptions; + private Map outputOptions = new HashMap(); private volatile Integer pyramidResolutions; private volatile List seriesList; From 06f54c338e921c3305678f2765123b298542bf68 Mon Sep 17 00:00:00 2001 From: Eric Perlman Date: Wed, 26 Apr 2023 13:05:37 -0400 Subject: [PATCH 2/4] Update google-cloud-nio --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 0135a6b6..22813fe3 100644 --- a/build.gradle +++ b/build.gradle @@ -47,7 +47,7 @@ dependencies { implementation 'javax.xml.bind:jaxb-api:2.3.0' implementation group: 'ch.qos.logback', name: 'logback-classic', version: '1.3.14' implementation group: 'ch.qos.logback', name: 'logback-core', version: '1.3.14' - implementation 'com.google.cloud:google-cloud-nio:0.123.10' + implementation 'com.google.cloud:google-cloud-nio:0.127.5' implementation 'org.openpnp:opencv:4.7.0-0' implementation 'me.tongfei:progressbar:0.9.0' From 43cf971b94c971cf71d2faf25d5eed27e1e5f4ea Mon Sep 17 00:00:00 2001 From: Eric Perlman Date: Fri, 20 Oct 2023 11:46:15 -0400 Subject: [PATCH 3/4] First pass on docs for cloud storage. --- README.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/README.md b/README.md index 938269fc..b09adc1b 100644 --- a/README.md +++ b/README.md @@ -445,6 +445,27 @@ but most panorama images are large enough that a pyramid will be generated. Note that the `X`, `Y`, and `Z` channels in the raw data are calibration images. While these 3 channels appear first in the .mcd file, `MCDReader` moves them to the end of the channel list for a better viewing experience in OMERO. +Object Storage +============== + +Support for object storage is handled through Java NIO2. +Currently, only the output can be on cloud storage, and `--overwrite` is not supported. + +AWS S3 +------ + +S3 support is provided by [s3fs](https://github.com/lasersonlab/Amazon-S3-FileSystem-NIO2/). +Various parameters can be specified through `--output-options`. + +Google Cloud Storage (GCS) +-------------------------- + +Credentials are handled through [Application Default Credentials](https://cloud.google.com/docs/authentication/application-default-credentials). +The credentials used require read/write access to the bucket. (Minimally, this can be `Storage Object Creator`, +`Storage Object Viewer` and `Storage Object Delete`). + +`--output-options` are *not* currently supported with GCS. + License ======= From 95a06d7ed4bed80461cd10caac4f572c18b170bb Mon Sep 17 00:00:00 2001 From: Eric Perlman Date: Wed, 20 Nov 2024 13:34:46 +0100 Subject: [PATCH 4/4] Update google nio version --- build.gradle | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 22813fe3..f6c4d97a 100644 --- a/build.gradle +++ b/build.gradle @@ -47,7 +47,8 @@ dependencies { implementation 'javax.xml.bind:jaxb-api:2.3.0' implementation group: 'ch.qos.logback', name: 'logback-classic', version: '1.3.14' implementation group: 'ch.qos.logback', name: 'logback-core', version: '1.3.14' - implementation 'com.google.cloud:google-cloud-nio:0.127.5' + implementation 'com.google.cloud:google-cloud-nio:0.127.26' + implementation 'org.openpnp:opencv:4.7.0-0' implementation 'me.tongfei:progressbar:0.9.0'