Pass an External Image URL to the Sanity Client and Upload

11 replies
Last updated: Apr 7, 2020
Is there an option to pass an external image url to the sanity client, and have it uploaded? I need to upload image from another service, from a react app, but can't because of CORS. And would like to not have to set up a microservice just to be able to do this. 🙂
Apr 7, 2020, 2:44 PM
you might have a look at this: Custom Asset Sources

https://www.sanity.io/docs/custom-asset-sources
Apr 7, 2020, 3:04 PM
Thanks, but I wan't Sanity to store all images. I just need to import them through js client side, from an external source.
Apr 7, 2020, 3:07 PM
ahh, sorry, misread before
Apr 7, 2020, 3:07 PM
think you’d have to set up an external service for that 😕
Apr 7, 2020, 3:09 PM
user M
is right, the Sanity API doesn't support importing images from an url and there's no working around the browser security model here.
Apr 7, 2020, 3:40 PM
Ok, thanks. 🙂
Apr 7, 2020, 3:40 PM
Can’t it be kinda done via canvas? If you scroll down to the asset examples here? https://www.sanity.io/docs/js-client
Apr 7, 2020, 3:45 PM
You would still need to read the binary data from the image at another origin, and I don't think the same origin policy will allow that unless CORS headers are set.
Apr 7, 2020, 3:46 PM
user Y
I tried to do that, but as soon as you load external data into the canvas, the
toBlob()
throws error.
Apr 7, 2020, 3:47 PM
Aha! Well, that’s probably actually a good thing. Seems like lambdas or some such is the way to go
Apr 7, 2020, 3:47 PM

Sanity– build remarkable experiences at scale

Sanity is a modern headless CMS that treats content as data to power your digital business. Free to get started, and pay-as-you-go on all plans.

Was this answer helpful?