0

I am trying to upload data using the CartoDB import api. Uploading a regular file works but my attempts to upload data from stdin are failing.

The example of uploading a file works perfect.

curl -F file=@/Users/mbj/Downloads/cvr_count.csv "https://{CARTODBUSER}.cartodb.com/api/v1/imports/?api_key={APIKEY}"

I want to load data comming from stdin instead.

According to curl man page

To read content from stdin instead of a file, use - as the filename. This goes for >both @ and < constructs.

To test this:

cat /Users/mbj/Downloads/cvr_count.csv | curl -F file=@- "https://{CARTODBUSER}.cartodb.com/api/v1/imports/?api_key={APIKEY}"

Response:

{"item_queue_id":"7b8477f9-0926-4f11-b898-c9d9f149ae00","success":true}

But the table never appears in CartoDB. Has anybody tried this? Am I doing something wrong ?

1

After you launch the import job you need to check the state of that import using

curl "https://{CARTODBUSER}.cartodb.com/api/v1/imports/7b8477f9-0926-4f11-b898-c9d9f149ae00?api_key={APIKEY}"

in this case it will return something like:

{
    "content_guessing": false,
    "data_type": "file",
    "error_code": 1002,
    "get_error_text": {
        "title": "Unsupported/Unrecognized file type",
        "what_about": "Should we support this filetype? Let us know in our <a href='mailto:support-suggestions@cartodb.com'>support email</a>!"
    },

What is happening under the hood is ogr2ogr, the tool we use to import files can't recognize the file type.

For the moment CartoDB is not able to guess file types

  • I am very close to having a cartodb-upload library done for node. However I can't get the correct http header or something correct. Using curl is not an issue and the file is fine. However piping node streams to a url via post does not suffice. Does the header have to be multipart/form-data? – Nick May 1 '15 at 19:01
  • yes, from curl -F option man page "This causes curl to POST data using the Content-Type multipart/form-data" – javisantana May 4 '15 at 10:11

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.