👋 Next.js Conf 2024: Come build, party, run, and connect with us! See all events

Importing images to Sanity - possible workaround using ndjson

8 replies
Last updated: May 2, 2020
Hello. Trying to understand importing assets to sanity. After reading https://www.sanity.io/docs/importing-data am I right that images can only be imported by referencing them as part of a document? I would like to just import the images to make them available to the authors when they build content but I don't know how they're going to use them.
May 2, 2020, 4:18 PM
Hm. I'm surprised that this is the first time we had that question. I must admit I’m not sure if it’s possible upload just the images via the CLI, but you could get around it by making an ndjson like this.
{ "_type": "imageImport", "image": { "_type": "image", "_sanityAsset": "image@file:///path/to/image/file.jpg", } }
Import the documents (and the assets), and then run this script to delete all the
imageImport
 files after you're done with
*[_type == "imageImport"]
https://github.com/sanity-io/sanity-recipes/blob/master/snippets/deleteDocsByFilter.js
May 2, 2020, 4:28 PM
Hm. I'm surprised that this is the first time we had that question. I must admit I’m not sure if it’s possible upload just the images via the CLI, but you could get around it by making an ndjson like this.
{ "_type": "imageImport", "image": { "_type": "image", "_sanityAsset": "image@file:///path/to/image/file.jpg", } }
Import the documents (and the assets), and then run this script to delete all the
imageImport
 files after you're done with
*[_type == "imageImport"]
https://github.com/sanity-io/sanity-recipes/blob/master/snippets/deleteDocsByFilter.js
May 2, 2020, 4:28 PM
I'm surprised too 😅. Thanks Knut I'll give it a try!!
May 2, 2020, 4:34 PM
Should I be worried that the export gave a
Unhandled rejection: TypeError: Cannot read property 'setTimeout' of undefined
error and it's been exporting for 10 minutes now 🙂 ?
May 2, 2020, 6:31 PM
I'm exporting a very small dataset btw
May 2, 2020, 6:35 PM
Not sure what that means. Try running it with
DEBUG=sanity*
prepended to the export(?) command?
May 2, 2020, 6:41 PM
Exporting documents...  sanity:export Error, retrying after 1500ms: Cannot read property 'setTimeout' of undefined +146ms
⠹ Exporting documents...  sanity:export Error, retrying after 1500ms: Cannot read property 'setTimeout' of undefined +2s
⠹ Exporting documents...  sanity:export Error, retrying after 1500ms: Cannot read property 'setTimeout' of undefined +2s
⠙ Exporting documents...  sanity:export Error, retrying after 1500ms: Cannot read property 'setTimeout' of undefined +2s
⠹ Exporting documents...  sanity:export Error, retrying after 1500ms: Cannot read property 'setTimeout' of undefined +2s
⠋ Exporting documents...Unhandled rejection: TypeError: Cannot read property 'setTimeout' of undefined
    at /Users/proko/sanity-studio/node_modules/@sanity/export/lib/requestStream.js:73:31
    at Generator.next (<anonymous>)
    at /Users/proko/sanity-studio/node_modules/@sanity/export/lib/requestStream.js:79:10
    at Generator.next (<anonymous>)
    at asyncGeneratorStep (/Users/proko/sanity-studio/node_modules/@sanity/export/lib/requestStream.js:9:103)
    at _next (/Users/proko/sanity-studio/node_modules/@sanity/export/lib/requestStream.js:11:194)
    at processTicksAndRejections (internal/process/task_queues.js:97:5)
⠴ Exporting documents...

🤔 is this giving any hints?
May 2, 2020, 6:48 PM
Did an upgrade and export again and this time it worked. This is a "my code (works|doesn't work) and have no idea why" situation!!
May 2, 2020, 7:01 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?