So I am in the process of trying to upload a file to a specific Google Drive folder that a user specifies. Below is the code I have tried. I get the folderID and I try to post a file to the folder however I get a 404 Not Found
error.
def post_file(self, files_to_send, config = {}):
if config:
if type(config) is str:
config = literal_eval(config)
path_id = config.get('path')
for file_to_send in files_to_send:
filename = file_to_send.name.split('/')[-1]
status = self.call.post('https://www.googleapis.com/upload/drive/v2/files?uploadType=media/' + str(path_id) + "/children")
Using the interface on the Drive API documentation, I am able to get data with the same folderID but I am not able to post (Even with the interface). Files_to_send
is a list with all the files that I need to upload to the specific folder, and config
contains the folder path.
I need help understanding what I am doing wrong. I have read the documentation and looked at other answer but I have not found a solution. When I don't specify the folder ID, a dummy file does get posted to my drive, but it doesn't upload the file I want, and it doesn't upload anything at all when I specifiy a folderID.
Essentially, I need help inserting a file that comes in to a specific folder in Google Drive.
Thanks!
I believe you should send a metadata JSON including a parents
filed.
Something like:
{
"parents" : [path_id]
}
You can try this API here: https://developers.google.com/drive/v2/reference/files/insert
I tried using the API however I still get a '404 Not Found'. This is the response below: "code": 404, "message": "File not found: "
What is the exact URL you're using?
What do you mean exact URL? Do you mean the ID of the folder?
You seem to be sending a POST request to 'googleapis.com/upload/drive/v2/files?uploadType=media' + str(path_id) + "/children" What exactly does the URL look like after this string is concatenated?
googleapis.com/upload/drive/v2/files?uploadType=media/… That is an example of what the URL looks like going into the POST