【发布时间】:2017-08-26 00:22:53
【问题描述】:
我正在尝试使用 cURL 将文件上传到 Google 云端硬盘。文件被上传,但仅在根目录中,并且始终命名为“Untitled”。
我的基本脚本如下所示:
curl
--silent
--request POST
--data-binary "@c:\temp\myfile.jpg"
-H "Authorization: Bearer abcdefg"
-H "Content-Type: image/jpeg
"https://www.googleapis.com/upload/drive/v2/files?uploadType=media"
使用这些链接作为参考:
Upload file to Drive and set file name
https://gist.github.com/deanet/3427090
https://developers.google.com/drive/web/manage-uploads
我注意到这可能是必需的,这是在 Google 的文档中定义的(参见链接)
-H "Slug: myfile3.jpg"
但这不管我有没有放进去都没有效果。
使用 cURL 帮助,我注意到这可能会有所帮助:
-OL MyFolder\myfile2.jpeg
...但这也没有效果。
我还注意到字符串 {title:file title} 可能是必需的,但我不知道如何使用 cURL 将其嵌入。基于上面的链接,我想我可以将它附加在一个标题的末尾,就在正文之前。因此,我尝试变得聪明,并将内容类型规范更改为:
-H "Content-Type: image/jpeg {"title":"myfile4"}"
...但它也没有效果。
奇怪的是,谷歌自己的文档是不正确的,所以,我怀疑他们曾经使用的方法现在已经过时了。链接中的授权规范是错误的。您必须使用 Bearer 令牌,而不是“GoogleLogin”。我参考了这个链接:
https://developers.google.com/gdata/articles/using_cURL
我的整个脚本看起来像这样。它会上传,但不是在我想要的地方,也没有按照我想要的方式命名。
curl
--silent
--request POST
--data-binary "@c:\temp\myfile.jpg"
-OL MyFolder\myfile2.jpeg
-H "Slug: myfile3.jpg"
-H "Authorization: Bearer abcdefg"
-H "Content-Type: image/jpeg {"title":"myfile4"}"
"https://www.googleapis.com/upload/drive/v2/files?uploadType=media"
我意识到我在一个地方指定了“myfile2.jpg”,在另一个地方指定了“myfile3.jpg”,在另一个地方指定了“myfile4”。它们是否匹配或完全指定都没有区别。
任何帮助将不胜感激!
【问题讨论】:
标签: curl google-drive-api