Search code examples
linuxamazon-web-servicescurlamazon-ec2dropbox

Using CURL to upload to Dropbox and overwrite a file


I'm a small time admin and would say entry level to Linux. I am trying to use CURL to upload to Dropbox a small backup sqlitedb and have had success for the first upload, however, I am trying to accomplish uploading a file to Dropbox every 30 minutes and overwriting the current file in DROPBOX with the new file from my Linux server (as a jerry-rigged offsite backup of my Teamspeak database)

This is the code I have so far :

curl -X PUT https://content.dropboxapi.com/2/files/upload \
--header "Authorization: Bearer <dropbox code here>" \
--header "Dropbox-API-Arg: {\"path\": \"/home/ec2-user/ts3server.sqlitedb.bz2\"}" \
--header "Content-Type: application/octet-stream" \
--data-binary ts3server.sqlitedb.bz2

After running that code once, it doesn't OVERRIDE the current file in my Dropbox account with the updated file. Any help is appreciated


Solution

  • you need to use mode with parameter overwrite. The default is add.

    Add - Do not overwrite an existing file if there is a conflict. The autorename strategy is to append a number to the file name. For example, "document.txt" might become "document (2).txt".

    overwrite - Always overwrite the existing file. The autorename strategy is the same as it is for add.

    Reference: /upload

    curl -X POST https://content.dropboxapi.com/2/files/upload \
        --header "Authorization: Bearer " \
        --header "Dropbox-API-Arg: {\"path\": \"/Homework/math/Matrices.txt\",\"mode\": \"overwrite\",\"autorename\": true,\"mute\": false}" \
        --header "Content-Type: application/octet-stream" \
        --data-binary @local_file.txt