From 3c607e64f9227b313a16afb86480709997e2762d Mon Sep 17 00:00:00 2001 From: Ed Porras Date: Mon, 3 Feb 2025 12:51:07 +0100 Subject: [PATCH 1/2] chore: minor clean up of docstrings and indentation --- src/clj_gcloud/storage.clj | 45 +++++++++++++++++--------------- test/clj_gcloud/storage_test.clj | 14 +++++----- 2 files changed, 31 insertions(+), 28 deletions(-) diff --git a/src/clj_gcloud/storage.clj b/src/clj_gcloud/storage.clj index 3fd03c7..8ce5dc7 100644 --- a/src/clj_gcloud/storage.clj +++ b/src/clj_gcloud/storage.clj @@ -1,20 +1,22 @@ (ns clj-gcloud.storage - (:require [clj-gcloud - [coerce :refer [create-clj-coerce ->clj page->seq]] - [common :refer [build-service array-type]]] - [clojure.java.io :as io] - [clojure.string :as str] - [clojure.tools.logging :as log]) - (:import (com.google.cloud.storage BucketInfo Blob BlobId BlobInfo BucketInfo$Builder Storage StorageOptions - Storage$BucketGetOption Storage$BucketTargetOption - Storage$BucketSourceOption BlobInfo$Builder Storage$CopyRequest - Storage$BlobTargetOption Storage$BlobWriteOption - Blob$BlobSourceOption Storage$BlobListOption CopyWriter) - (java.nio.channels Channels ReadableByteChannel WritableByteChannel) - (java.nio.file Paths) - (java.io InputStream OutputStream FileInputStream File) - (com.google.cloud WriteChannel) - (com.google.common.io ByteStreams))) + (:require + [clj-gcloud + [coerce :refer [create-clj-coerce ->clj page->seq]] + [common :refer [build-service array-type]]] + [clojure.java.io :as io] + [clojure.string :as str] + [clojure.tools.logging :as log]) + (:import + (com.google.cloud WriteChannel) + (com.google.cloud.storage BucketInfo Blob BlobId BlobInfo BucketInfo$Builder Storage StorageOptions + Storage$BucketGetOption Storage$BucketTargetOption + Storage$BucketSourceOption BlobInfo$Builder Storage$CopyRequest + Storage$BlobTargetOption Storage$BlobWriteOption + Blob$BlobSourceOption Storage$BlobListOption CopyWriter) + (com.google.common.io ByteStreams) + (java.io InputStream OutputStream FileInputStream File) + (java.nio.channels Channels ReadableByteChannel WritableByteChannel) + (java.nio.file Paths))) (create-clj-coerce BucketInfo [:name :location :storage-class]) (create-clj-coerce Blob [:blob-id :name :content-type @@ -58,10 +60,10 @@ (.create storage bucket-info no-options))) (defn get-or-create-bucket - "Fetches or creates a bucket if it doesn't exist" + "Fetches or creates a bucket if it doesn't exist." [^Storage storage ^BucketInfo info] (let [bucket-name (.getName info) - bucket (get-bucket storage bucket-name)] + bucket (get-bucket storage bucket-name)] (or bucket (do (log/info "Creating new bucket:" bucket-name) @@ -172,7 +174,8 @@ [bucket name])) (defn ls - "Usage: + "List files. + Usage: (ls storage gs-uri [options]) (ls storage bucket path [options])" ([^Storage storage gs-uri] @@ -210,12 +213,12 @@ (Channels/newOutputStream channel)) (defn stream->file - "Writes an input stream to disk" + "Writes an input stream to disk." [^InputStream input-stream local-path] (io/copy input-stream (io/file local-path))) (defn file->stream - "Writes an local file to stream" + "Writes an local file to stream." [local-path ^OutputStream output-stream] (io/copy (io/file local-path) output-stream)) diff --git a/test/clj_gcloud/storage_test.clj b/test/clj_gcloud/storage_test.clj index d1cf51d..dbf7eda 100644 --- a/test/clj_gcloud/storage_test.clj +++ b/test/clj_gcloud/storage_test.clj @@ -1,7 +1,7 @@ (ns clj-gcloud.storage-test (:require [clj-gcloud.coerce :refer [->clj]] - [clj-gcloud.storage :refer [copy-file-to-storage read-channel ->input-stream delete-blob ls]] + [clj-gcloud.storage :as sut] [clojure.java.io :as io] [clojure.test :refer [deftest is use-fixtures testing]]) (:import @@ -32,8 +32,8 @@ dest-uri (str "gs://" bucket "/tmp.json") data "{\"test\":\"data\"}"] (spit tmp data) - (copy-file-to-storage *storage* tmp dest-uri) - (let [^Blob blob (first (ls *storage* dest-uri)) + (sut/copy-file-to-storage *storage* tmp dest-uri) + (let [^Blob blob (first (sut/ls *storage* dest-uri)) coerced-blob (->clj blob)] (is (= {:blob-id {:bucket bucket :name "tmp.json"} :content-type "application/json" @@ -51,10 +51,10 @@ :content-encoding :delete-time} (set (keys coerced-blob)))) - (is (= data (-> (read-channel blob) - (->input-stream) + (is (= data (-> (sut/read-channel blob) + (sut/->input-stream) (io/reader) (slurp)))) - (is (delete-blob *storage* (.getBlobId blob))) - (is (= 0 (count (ls *storage* dest-uri))))) + (is (sut/delete-blob *storage* (.getBlobId blob))) + (is (= 0 (count (sut/ls *storage* dest-uri))))) (.delete tmp)))) From dc1744489284821ac445014e3c1105e07cd6ccc0 Mon Sep 17 00:00:00 2001 From: Ed Porras Date: Mon, 3 Feb 2025 12:52:14 +0100 Subject: [PATCH 2/2] build: bump to gc-bom/0.243.0 (lib-bom 26.53.0) --- project.clj | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/project.clj b/project.clj index 4e59bbe..9c2f99e 100644 --- a/project.clj +++ b/project.clj @@ -14,19 +14,19 @@ ;; dependency versions that work well with each other. ;; ;; based on versions from - ;; https://mvnrepository.com/artifact/com.google.cloud/google-cloud-bom/0.215.0 + ;; https://mvnrepository.com/artifact/com.google.cloud/google-cloud-bom/0.234.0 ;; which corresponds to - ;; https://mvnrepository.com/artifact/com.google.cloud/libraries-bom/26.34.0 - [[com.google.cloud/google-cloud-bom "0.215.0" + ;; https://mvnrepository.com/artifact/com.google.cloud/libraries-bom/26.53.0 + [[com.google.cloud/google-cloud-bom "0.234.0" :extension "pom" :scope "import"] - [com.google.cloud/google-cloud-shared-dependencies "3.27.0" + [com.google.cloud/google-cloud-shared-dependencies "3.42.0" :extension "pom" :scope "import"]] - :dependencies [[org.clojure/clojure "1.11.3"] - [com.oscaro/clj-gcloud-common "0.215-1.0"] - [com.google.cloud/google-cloud-nio "0.127.14"] - [com.google.cloud/google-cloud-storage "2.35.0"] + :dependencies [[org.clojure/clojure "1.11.4"] + [com.oscaro/clj-gcloud-common "0.234-1.0"] + [com.google.cloud/google-cloud-nio "0.127.29"] + [com.google.cloud/google-cloud-storage "2.47.0"] [org.clojure/tools.logging "1.3.0"]] :plugins [[io.github.borkdude/lein-lein2deps "0.1.0"]] :prep-tasks [["lein2deps" "--write-file" "deps.edn" "--print" "false"]]