   BlobId
   (to-clojure [id] {:bucket (.bucket id)
                     :name   (.name id)})
-  Blob
+  BlobInfo
   (to-clojure [blob] {:id                  (to-clojure (.blobId blob))
+                      :cache-control       (.cacheControl blob)
                       :content-disposition (.contentDisposition blob)
                       :content-encoding    (.contentEncoding blob)
                       :content-language    (.contentLanguage blob)

  [service {:keys [bucket name] :as blob-id}]
  (when-let [reader (.reader service (BlobId/of bucket name) (into-array Storage$BlobSourceOption []))]
    (Channels/newInputStream reader)))

(ns gclouj.storage
  (:import [com.google.cloud AuthCredentials]
           [com.google.cloud.storage StorageOptions Storage$BlobListOption Storage$BucketListOption Bucket Blob BlobId Storage$SignUrlOption Storage$BlobSourceOption BlobInfo Storage$BlobWriteOption]
           [gclouj StorageOptionsFactory]
           [java.util.concurrent TimeUnit]
           [java.nio.channels Channels])
