通过终端/命令行将文件上传到GDrive

时间:2018-07-11 13:47:30

标签: command-line terminal google-drive-api

我正在为不支持库的平台开发程序,该库不支持从Google云端硬盘上载或下载文件。 所以我需要发送Socket命令。 但是我发现很难实现。

我的程序将发送.txt,jpg,.html等文件类型。

我将不得不从命令行发送和下载这些文件。我已经尝试过,但是没有成功...

首先要获得有效的令牌,我正在使用此链接,用户将在浏览器中打开该链接,并在我的程序内复制该令牌以修改其文件: https://accounts.google.com/o/oauth2/v2/auth?scope=profile&response_type=code&state=security_token&redirect_uri=urn:ietf:wg:oauth:2.0:oob&client_id=165834794520-tit58jbii1u8itv8q8urjlda1tobsvf1.apps.googleusercontent.com

显然这部分工作正常。

但是当我使用令牌发送文件时,它不起作用。 我将此命令作为测试进行了,它不起作用! 我已经多次更改了令牌,以为可能是,但是事实并非如此。 很奇怪。

我的文件,我将从命令行发送,所以我不确定应该使用哪种方法,SIMPLE还是MULTIPART ... 我的文件很小,但可能只有5MB。

看看我在终端(原始套接字)中得到什么:

S: POST /upload/drive/v3/files?uploadType=multipart HTTP/1.1
S: Host: www.googleapis.com
S: Authorization: Bearer 4/AABZB61gFY8NqyXxxxxxxxxxxr7CThy1BuDOOGL7aLiRab80
S: Content-Type: multipart/related; boundary=foo_bar_baz
S: Content-Length: 167
S: 
S: --foo_bar_baz
S: Content-Type: application/json; charset=UTF-8
S: 
S: {
S:   "name": "myObject"
S: }
S: 
S: --foo_bar_baz
S: Content-Type: image/jpeg
S: 
S: [JPEG_TEST]
S: --foo_bar_baz--

Return:

HTTP/1.1 401 Unauthorized
X-GUploader-UploadID: AEnB2UoolTbsyS_gK21G07sUJrIggzH_ivy1a_KvzvnvhiyqIOYqej8JhNQ1tmZ0KiIlrYjOTejlxXYIoSiTNs3mLiLBWzCb-A
Vary: Origin
Vary: X-Origin
WWW-Authenticate: Bearer realm="https://accounts.google.com/", error=invalid_token
Content-Type: application/json; charset=UTF-8
Content-Length: 249
Date: Wed, 11 Jul 2018 12:51:18 GMT
Server: UploadServer
Alt-Svc: quic=":443"; ma=2592000; v="43,42,41,39,35"

{
 "error": {
  "errors": [
   {
    "domain": "global",
    "reason": "authError",
    "message": "Invalid Credentials",
    "locationType": "header",
    "location": "Authorization"
   }
  ],
  "code": 401,
  "message": "Invalid Credentials"
 }
}

该错误似乎是错误的令牌,但是我总是得到新的令牌,并且总是给出相同的错误!

有人可以帮我吗?

0 个答案:

没有答案