Help

Cannot upload PDF-attachments with CURL

Topic Labels: API
3752 4
cancel
Showing results for 
Search instead for 
Did you mean: 
Ihor_Demchuk
4 - Data Explorer
4 - Data Explorer

Background.

I have Valuations field in my Airtable DB. It’s type is set to “Attachment” and it stores PDFs. I populate it manually.

Script.

I’ve got a VBA-script with embedded CURL-commands that works as follows:

  1. Record values in several fields
  2. Delete all rows.
  3. Insert new sample enriched with the recorded data in rows with matching IDs, i.e. from step 1.

Problem.

Despite the fact that I have recorded the JSONs of each attachment in “Valuations” I get #422 Error whenever I launch my CURL to create an updated record containing attachments in “Valuations”. Please, have a look at the JSON below. Any advice will be highly appreciated.

“Valuations”:[
{
“id”:“attGR7hW7A3jnIczu”,
“url”:“URL…pdf”,
“filename”:“Valuation-Workbook_3284-3286-Sullivant-Ave-Columbus-OH-43204_2018-12-27-11-11-09 (1).pdf”,
“size”:8244890,
“type”:“application/pdf”,
“thumbnails”:{
“small”:{
“url”:“URL…pdf”,
“width”:36,
“height”:36},
“large”:{
“url”:“URL…pdf”,
“width”:512,
“height”:512}
}
}
]

4 Replies 4
EUGENE_GONCHAR
5 - Automation Enthusiast
5 - Automation Enthusiast

Me too, please anyone HELP!

Andrew_Johnson1
8 - Airtable Astronomer
8 - Airtable Astronomer

Try using only the “url” and “filename” parameter.
Perhaps the size, width, height etc are not matching up with Airtable’s calculation of said file…not sure though.

Are you able to directly update/create the record via curl on your terminal?

Chinara_James
6 - Interface Innovator
6 - Interface Innovator

Airtable needs your files to be hosted on a webserver. So you cannot use a url that is from your filesystem. Where are the files hosted?

Ihor_Demchuk
4 - Data Explorer
4 - Data Explorer

Thank you guys for sharing your expertise!

I have investigated this situation and was able to find the following:

  1. In order to insert an attachment by a CURL command it is sufficient to provide just its URL.
  2. If your source file is stored in OneDrive you cannot get its URL directly from the browser address box because OneDrive uses redirects that CURL commands cannot reproduce. You need to send XML-query to google drive to obtain genuine underlying URLs of your attachment-files and insert them into your CURL commands posted to Airtable. I did that and it worked like a charm.

NB! Example of a direct URL of a file that is stored on OneDrive:dl.airtable.com/.attachments/33aba36f77e45410fa589284f0231667/e27bd864/y4mQyjZyCPxzkFRz_OraavmULDtK8ok4c-WK3ee-NmcpKU0Z4C_Y3rqiD1QvuOyNJOiKQPrF1aMxc6lKNBp6mKKsq-s9w0DdQsHKoPuP1a2E4dDvjhAx9n30h9mHMGWZwj7JGNUuFSpzTYMpQ0QBa0tdsJObbxwD21B33gPHUX47kdXJOvHp8A_zEC9NJ88kuXqzwY842WJi9YMzE3Gl-3gSBc2zhs8CSWSVjDJaGrdeVk