无法将文件上传到 Google 云端硬盘中的文件夹
Unable to upload file to folder in Google Drive
我正在尝试将本地文件上传到 Google Drive 中的指定文件夹,但我只成功地将它上传到 Drive,而不是我告诉它的文件夹。我已经使用共享文件夹和非共享文件夹进行了测试,我得到了相同的结果。没有错误,只是文件在 Drive 根目录中。
creds = GetGoogleCredentials()
service = build('drive', 'v3', credentials=creds)
# Call the Drive v3 API
FileSearch = service.files().list(q="name='{0}'".format(file), fields="nextPageToken, files(id, name)").execute()
items = FileSearch.get('files', [])
FolderID = 'IDHere'
if not items:
file_metadata = {'name': file,
"parents": FolderID
}
media = MediaFileUpload('folder/en/' + file,resumable=True)
service.files().create(body=file_metadata,media_body=media,fields='id').execute()
else:
print('Files:')
for item in items:
print(u'{0} ({1})'.format(item['name'], item['id']))
根据我的发现,"parents": FolderID
条目应该是我需要的,但是 create
方法似乎忽略了它。
- 您想使用 Drive API v3 将文件上传到 Google Drive 中的特定文件夹。
- 您想使用带有 python 的 googleapis 来实现此目的。
- 您已经使用脚本将文件上传到 Google 驱动器。
如果我的理解是正确的,这个修改怎么样?请修改file_metadata
对象中的parents
如下。
发件人:
"parents": FolderID
收件人:
"parents": [FolderID]
- 在 Google 驱动器上,一个文件有多个父文件。所以在这种情况下,文件夹ID设置在一个数组中。
参考:
如果这不能直接解决您的问题,我深表歉意。
我正在尝试将本地文件上传到 Google Drive 中的指定文件夹,但我只成功地将它上传到 Drive,而不是我告诉它的文件夹。我已经使用共享文件夹和非共享文件夹进行了测试,我得到了相同的结果。没有错误,只是文件在 Drive 根目录中。
creds = GetGoogleCredentials()
service = build('drive', 'v3', credentials=creds)
# Call the Drive v3 API
FileSearch = service.files().list(q="name='{0}'".format(file), fields="nextPageToken, files(id, name)").execute()
items = FileSearch.get('files', [])
FolderID = 'IDHere'
if not items:
file_metadata = {'name': file,
"parents": FolderID
}
media = MediaFileUpload('folder/en/' + file,resumable=True)
service.files().create(body=file_metadata,media_body=media,fields='id').execute()
else:
print('Files:')
for item in items:
print(u'{0} ({1})'.format(item['name'], item['id']))
根据我的发现,"parents": FolderID
条目应该是我需要的,但是 create
方法似乎忽略了它。
- 您想使用 Drive API v3 将文件上传到 Google Drive 中的特定文件夹。
- 您想使用带有 python 的 googleapis 来实现此目的。
- 您已经使用脚本将文件上传到 Google 驱动器。
如果我的理解是正确的,这个修改怎么样?请修改file_metadata
对象中的parents
如下。
发件人:
"parents": FolderID
收件人:
"parents": [FolderID]
- 在 Google 驱动器上,一个文件有多个父文件。所以在这种情况下,文件夹ID设置在一个数组中。
参考:
如果这不能直接解决您的问题,我深表歉意。