ken*_*ima 4 python google-drive-api service-accounts
我正在尝试上传在我的计算机上使用 path 创建的 pdf 文件output_pdfs/<pdf-name>.pdf。我正在使用id我想要在代码中上传文件的父文件夹。我收到 HttpError 404“File Not Found”,指的是父 ID(父文件夹)。我在这里读过,我可以通过使用 childID 来获取parentID,但这不起作用,因为我想创建一个子文件夹(子文件夹),因为它可能还不存在。
我已完成的步骤:
"https://www.googleapis.com/auth/drive"gcloud auth list表明我正在使用与共享工作表相同的凭据。def deliver_to_google_drive(output_pdf, creds, parentFolderID, folderToCreate):
drive_service = build('drive', 'v3', credentials=creds)
file_metadata = {
'parents':[parentFolderID],
'name': output_pdf
}
media = MediaFileUpload(output_pdf, mimetype='application/pdf',resumable=True)
file = drive_service.files().create(body=file_metadata, """<-- 404 error here"""
media_body=media,
fields='id').execute()
print('File ID: %s' % file.get('id'))
file.Upload()
Run Code Online (Sandbox Code Playgroud)
谢谢。
因此,由于该文件夹位于共享驱动器中,因此在列出父文件夹时,您需要在创建文件时使用并再次includeItemsFromAllDrives=True使用supportsAllDrives=True。supportsAllDrives=True我测试过这段代码,它按名称查找父文件夹,创建文件并上传
def deliver_to_google_drive(output_pdf, creds, folderToStorePdfs):
drive_service = build('drive', 'v3', credentials=creds)
page_token = None
while True:
query = "mimeType = 'application/vnd.google-apps.folder' and name = '%s'" % folderToStorePdfs
response = drive_service.files().list(q=query,
spaces='drive',
fields='nextPageToken, files(id, name)',
includeItemsFromAllDrives=True,
supportsAllDrives=True,
pageToken=page_token).execute()
#NB includeItemsFromAllDrives and supportsAllDrives needed for shared drives
for folder in response.get('files', []):
print('Found folder: %s (%s)' % (folder.get('name'), folder.get('id')))
print(output_pdf)
filename = output_pdf.split('/')[1]
file_metadata = {
'parents':[folder.get('id')],
'name': filename
}
media = MediaFileUpload(output_pdf, mimetype='application/pdf',resumable=True)
file = drive_service.files().create(body=file_metadata,
media_body=media,
fields='id',supportsAllDrives=True).execute()
print('File ID: %s' % file.get('id'))
page_token = response.get('nextPageToken', None)
if page_token is None:
break
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4893 次 |
| 最近记录: |