gpt4 book ai didi

python - 在 Python 中从 Google API V3 获取文件元数据

转载 作者:太空狗 更新时间:2023-10-29 20:43:22 25 4
gpt4 key购买 nike

我正在尝试使用 Python 从 Google Drive API V3 检索文件元数据。我在 API V2 中做到了,但在 V3 中失败了。我试图通过这一行获取元数据:

data = DRIVE.files().get(fileId=file['id']).execute()

但我得到的只是 'id''kind''name''mimeType '。如何获取 'md5Checksum''fileSize' 等?

我读了documentation .我应该通过 get() 方法获取所有元数据,但我得到的只是其中的一小部分。

这是我的代码:

from __future__ import print_function
import os

from apiclient.discovery import build
from httplib2 import Http
from oauth2client import file, client, tools

try:
import argparse
flags = argparse.ArgumentParser(parents=[tools.argparser]).parse_args()
except ImportError:
flags = None

SCOPES = 'https://www.googleapis.com/auth/drive.metadata
https://www.googleapis.com/auth/drive'
store = file.Storage('storage.json')
creds = store.get()
if not creds or creds.invalid:
flow = client.flow_from_clientsecrets('storage.json', scope=SCOPES)
creds = tools.run_flow(flow, store)
DRIVE = build('drive','v3', http=creds.authorize(Http()))

files = DRIVE.files().list().execute().get('files',[])

for file in files:
print('\n',file['name'],file['id'])
data = DRIVE.files().get(fileId=file['id']).execute()
print('\n',data)

print('Done')

我试过这个答案: Google Drive API v3 Migration

List

Files returned by service.files().list() do not contain information now, i.e. every field is null. If you want list on v3 to behave like in v2, call it like this:

service.files().list().setFields("nextPageToken, files");

但我得到了回溯:

DRIVE.files().list().setFields("nextPageToken, files")
AttributeError: 'HttpRequest' object has no attribute 'setFields'

最佳答案

假设你想根据文件的 fileId 获取文件的 md5 哈希值,你可以这样做:

DRIVE = build('drive','v3', http=creds.authorize(Http()))
file_service = DRIVE.files()
remote_file_hash = file_service.get(fileId=fileId, fields="md5Checksum").execute()['md5Checksum']

列出驱动器上的一些文件:

results = file_service.list(pageSize=10, fields="files(id, name)").execute()

我构建了一个小应用程序 gDrive-auto-sync包含更多 API 用法示例。
它有详细的文档记录,因此您可以根据需要查看它。
Here是包含所有代码的主文件。它可能看起来很多,但超过一半的行只是注释。

关于python - 在 Python 中从 Google API V3 获取文件元数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37490899/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com