Warm tip: This article is reproduced from serverfault.com, please click

Python: How to upload files to a specific folder in Google Drive using folderId

发布于 2014-11-06 15:40:49

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!

Questioner
AlvinJ
Viewed
11
Omri Segal 2014-11-06 23:49:28

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