Search code examples
shellcurluploadgoogle-drive-api

upload zip file to google drive using curl


I am trying to upload a zip file to Google drive account using curl.

The file is uploaded successfully but the filename is not getting updated. It gets uploaded with default filename i.e. "Untitled".

I am using below command.

curl -k -H "Authorization: Bearer cat /tmp/token.txt" -F "metadata={name : 'backup.zip'} --data-binary "@backup.zip" https://www.googleapis.com/upload/drive/v2/files?uploadType=multipart

Solution

  • You can use Drive API v3 to upload the zip file. The modified curl code is as follows.

    curl -X POST -L \
        -H "Authorization: Bearer `cat /tmp/token.txt`" \
        -F "metadata={name : 'backup.zip'};type=application/json;charset=UTF-8" \
        -F "file=@backup.zip;type=application/zip" \
        "https://www.googleapis.com/upload/drive/v3/files?uploadType=multipart"
    

    In order to use this, please include https://www.googleapis.com/auth/drive in the scope.