我很难通过他们的API正确上传文件到Google云端硬盘。我使用的是Python,而且我知道有一个适用于Google API的客户端库。这是我现在拥有的。运行以下代码时,会在Google云端硬盘中创建一个空的无标题文档,但该文档不在正确的目录root/level_1
中。我不确定我对data
和files
对象做错了什么。代码中有什么突出的东西吗?
以下是我关注的docs。
import json
import requests
url = "https://www.googleapis.com/upload/drive/v2/files?access_token=ACCESS_TOKEN&uploadType=multipart"
files = {"file": requests.get("image_url").content}
data = {
"title": "image_url.jpg",
"parents": ["root", "level_1"]
}
response = requests.post(url, data=json.dumps(data), files=files)
# json.loads(response.text)["title"] = "Untitled"
return response
答案 0 :(得分:1)
这次修改怎么样?
#####
的{{1}}。https://drive.google.com/drive/folders/#####
作为ID。root
import json
import requests
headers = {"Authorization": "Bearer " + ACCESS_TOKEN}
para = {
"title": "image_url.jpg",
"parents": [{"id": "root"}, {"id": "### folder ID ###"}]
}
files = {
"data": ("metadata", json.dumps(para), "application/json; charset=UTF-8"),
"file": requests.get("image_url").content
}
response = requests.post("https://www.googleapis.com/upload/drive/v2/files?uploadType=multipart", headers=headers, files=files)
return response
检索到的图像文件上传到根文件夹,文件夹中包含image_url
的Google云端硬盘,文件名为“image_url.jpg”。如果我误解了你的问题,我很抱歉。
答案 1 :(得分:0)
我认为您无法在上传时设置目录,因此' root'永远是默认的。首先将其上传到根文件夹,然后移动文件。有关使用Python的完整代码实现,请关注Wesley Chun的博客: Uploading & Downloading files with Python:
片段:
DRIVE = build('drive', 'v2', http=creds.authorize(Http()))
FILES = (
('hello.txt', False),
('hello.txt', True),
)
for filename, convert in FILES:
metadata = {'title': filename}
res = DRIVE.files().insert(convert=convert, body=metadata,
media_body=filename, fields='mimeType,exportLinks').execute()
if res:
print('Uploaded "%s" (%s)' % (filename, res['mimeType']))
另外,请查看官方Drive API Uploading Files文档。
要选择要上传的文件夹,请检查此SO post。