diff --git a/backend/src/app/rpc/mutations/media.clj b/backend/src/app/rpc/mutations/media.clj index b6b115d7c..91e2a4413 100644 --- a/backend/src/app/rpc/mutations/media.clj +++ b/backend/src/app/rpc/mutations/media.clj @@ -66,9 +66,18 @@ [info] (= (:mtype info) "image/svg+xml")) +(defn- fetch-url + [url] + (try + (http/get! url {:as :byte-array}) + (catch Exception e + (ex/raise :type :validation + :code :unable-to-access-to-url + :cause e)))) + (defn- download-media [{:keys [storage] :as cfg} url] - (let [result (http/get! url {:as :byte-array}) + (let [result (fetch-url url) data (:body result) mtype (get (:headers result) "content-type") format (cm/mtype->format mtype)] diff --git a/frontend/src/app/main/data/workspace/persistence.cljs b/frontend/src/app/main/data/workspace/persistence.cljs index 892d6ed0f..66f147f4e 100644 --- a/frontend/src/app/main/data/workspace/persistence.cljs +++ b/frontend/src/app/main/data/workspace/persistence.cljs @@ -424,6 +424,9 @@ (= (:code error) :media-type-not-allowed) (rx/of (dm/error (tr "errors.media-type-not-allowed"))) + (= (:code error) :ubable-to-access-to-url) + (rx/of (dm/error (tr "errors.media-type-not-allowed"))) + (= (:code error) :invalid-image) (rx/of (dm/error (tr "errors.media-type-not-allowed")))