使用curl命令通过driverestapi直接将文件上传到googledrive中的特定文件夹

使用curl命令通过driverestapi直接将文件上传到googledrive中的特定文件夹,rest,curl,google-drive-api,Rest,Curl,Google Drive Api,我正在编写一个bash脚本,使用curl命令将本地文件上传到googledrive。在这种情况下,我总是使用google-drive-v3 rest查询来创建和更新(补丁)文件。 有没有办法将文件直接上传到驱动器中的特定文件夹 现在,我写了剧本 1。正在特定目录中创建空文件。 curl --request POST 'https://www.googleapis.com/drive/v3/files' --header 'Authorization: Bearer [ACCESS-TOK

我正在编写一个bash脚本,使用curl命令将本地文件上传到googledrive。在这种情况下,我总是使用google-drive-v3 rest查询来创建和更新(补丁)文件。 有没有办法将文件直接上传到驱动器中的特定文件夹

现在,我写了剧本

1。正在特定目录中创建空文件。

curl --request POST   'https://www.googleapis.com/drive/v3/files'   --header 'Authorization: Bearer [ACCESS-TOKEN]'   --header 'Accept: application/json'   --header 'Content-Type: application/json'   --data '{"name":"NEW_FILE_NAME","mimeType":"image/jpeg","parents":["DEST_DIRECTORY"]}'   --compressed
curl --request PATCH 'https://www.googleapis.com/upload/drive/v3/files/FILEID'   --header 'Authorization: Bearer [ACCESS_TOKEN]' -F "fileupload=@ubuntu-logo.png;type=image/png"   --compressed
这将成功地在指定目录中创建空的新文件

2。将文件内容上载为修补程序。

curl --request POST   'https://www.googleapis.com/drive/v3/files'   --header 'Authorization: Bearer [ACCESS-TOKEN]'   --header 'Accept: application/json'   --header 'Content-Type: application/json'   --data '{"name":"NEW_FILE_NAME","mimeType":"image/jpeg","parents":["DEST_DIRECTORY"]}'   --compressed
curl --request PATCH 'https://www.googleapis.com/upload/drive/v3/files/FILEID'   --header 'Authorization: Bearer [ACCESS_TOKEN]' -F "fileupload=@ubuntu-logo.png;type=image/png"   --compressed
这将更新上面指定的文件id中的文件内容

有没有办法将上述两个步骤合并为一个步骤

同时,通过这种创建和更新文件的方法,如果文件是图像/png文件,则不会生成要预览的缩略图。请同时解决此问题。

问题1:
  • 要使用curl命令将图像文件上载到特定文件夹
  • 您已获得将文件上载到Google Drive的访问令牌
如果我的理解是正确的,那么这个答案呢

示例curl命令: 使用时,请设置访问令牌和文件夹ID

curl -X POST \
  -H "Authorization: Bearer [ACCESS-TOKEN]" \
  -F "metadata={ \
               name : 'NEW_FILE_NAME', \
               mimeType : 'image/png', \
               parents: ['DEST_DIRECTORY'] \
               };type=application/json;charset=UTF-8" \
  -F "file=@ubuntu-logo.png;type=image/png" \
  "https://www.googleapis.com/upload/drive/v3/files?uploadType=multipart"
注:
  • 不幸的是,此API无法将mimeType从
    image/jpeg
    转换为
    image/png
问题2:
  • 在2个curl命令(创建和更新)中,无法更新缩略图。
    • 你想知道这个问题
如果我的理解是正确的,那么这个答案呢

问题: 在更新文件的curl命令中,不使用元数据。在这种情况下,缩略图似乎无法更新。如果要更新缩略图而不更新所有元数据,请向端点添加
-F“metadata={};type=application/json”
,并请添加
?uploadType=multipart
。这样,缩略图就会更新

修改后的curl命令如下所示。在本例中,修改了用于更新文件的curl命令

修改的curl命令: 参考资料:

如果我误解了你的问题,并且这不是你想要的结果,我道歉。

如果你使用Linux或Mac,我的回答是否向你显示了你想要的结果?你能告诉我这件事吗?这对我的学习也很有用。如果这样做有效,其他与你有相同问题的人也可以将你的问题作为可以解决的问题。如果你对我的回答还有疑问,我道歉。那时候,我可以问一下你目前的情况吗?我想学习来解决你的问题。你好,塔奈克,谢谢你的回答。“它很好用。”基鲁巴卡兰欢迎。谢谢你让我知道。我很高兴你的问题解决了。如果您的问题已解决,请按“接受”按钮。与您有相同问题的其他人也可以将您的问题作为可以解决的问题。如果你找不到按钮,尽管告诉我。