使用curl将zip文件上传到google驱动器

Sar*_*rar 2 shell upload curl google-drive-api

我正在尝试将zip文件上传到Google云端硬盘帐户curl.

文件已成功上载,但文件名未更新.它以默认文件名上传,即" 无标题 ".

我正在使用下面的命令.

curl -k -H "Authorization: Bearer cat /tmp/token.txt" -F "metadata={name : 'backup.zip'} --data-binary "@backup.zip" https://www.googleapis.com/upload/drive/v2/files?uploadType=multipart
Run Code Online (Sandbox Code Playgroud)

HAK*_*AKS 12

上面的答案工作正常,是我使用 Curl 将文件上传到 Google Drive 时使用的命令。但是,我不明白什么是作用域以及使此命令起作用所需的所有初始设置。因此,出于文档目的。我会给出第二个答案。

在撰写本文时有效...

访问凭证页面并创建一个新凭证(假设您已经创建了一个项目)。我为TVs 和 Limited devices创建了凭据,因此工作流程类似于:

创建凭据 > OAuth 客户端 ID > 应用程序类型 > 电视和受限输入设备 > 命名客户端 > 单击创建。

执行此操作后,我可以在查看新创建的凭据时复制客户端 ID 和客户端密钥。

注意:仅应替换 Curl 命令中带有双星号的变量。

下一步是运行 Curl 命令:

curl -d "client_id=**client_id**&scope=**scope**" https://oauth2.googleapis.com/device/code
Run Code Online (Sandbox Code Playgroud)

在这种情况下,范围可以被认为是您打算使用具有输入client_id的凭据进行的访问类型。文档中有关范围的更多信息对于重点用例,即上传文件,选择的范围是https://www.googleapis.com/auth/drive.file.

在运行上面的 curl 命令时,您将得到类似于以下内容的响应:

{ "device_code": "XXXXXXXXXXXXX", "user_code": "ABCD-EFGH",
"expires_in": 1800, "interval": 5, "verification_url": "https://www.google.com/device" }

下一步是访问VERIFICATION_URL在您的浏览器的响应,提供user_code并接受权限请求。遵循所有提示后,您将看到一个代码,其余步骤不需要此代码(但可能出于某些原因将其用于其他用例)。

下一步是使用 Curl 命令:

curl -d client_id=**client_id** -d client_secret=**client_secret** -d device_code=**device_code** -d grant_type=urn%3Aietf%3Aparams%3Aoauth%3Agrant-type%3Adevice_code https://accounts.google.com/o/oauth2/token
Run Code Online (Sandbox Code Playgroud)

您将收到类似于以下内容的响应:

{ "access_token": "XXXXXXXXX", "expires_in": 3599,
"refresh_token": "XXXXXXXXX", "scope": "https://www.googleapis.com/auth/drive.file", "token_type": "承载"}

现在您可以使用访问令牌并使用类似于以下内容的 Curl 命令来遵循接受的答案:

curl -X POST -L \
    -H "Authorization: Bearer **access_token**" \
    -F "metadata={name : 'backup.zip'};type=application/json;charset=UTF-8" \
    -F "file=@backup.zip;type=application/zip" \
    "https://www.googleapis.com/upload/drive/v3/files?uploadType=multipart"
Run Code Online (Sandbox Code Playgroud)


Tan*_*ike 10

您可以使用Drive API v3上传zip文件.修改后的卷曲代码如下.

curl -X POST -L \
    -H "Authorization: Bearer `cat /tmp/token.txt`" \
    -F "metadata={name : 'backup.zip'};type=application/json;charset=UTF-8" \
    -F "file=@backup.zip;type=application/zip" \
    "https://www.googleapis.com/upload/drive/v3/files?uploadType=multipart"
Run Code Online (Sandbox Code Playgroud)

为了使用它,请包括https://www.googleapis.com/auth/drive在范围内.