簡體   English   中英

使用 curl 命令通過 drive-rest-api 將文件上傳到谷歌驅動器中特定文件夾的直接方法

[英]Direct way to upload a file to specific folder in google drive through drive-rest-api using curl command

我正在編寫一個 bash 腳本,使用 curl 命令將本地文件上傳到谷歌驅動器。 在那,我總是使用 google-drive-v3 rest 查詢來創建和更新(PATCH)文件。 有什么辦法可以將文件直接上傳到驅動器中的特定文件夾?

目前,我編寫了這樣的腳本,

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

這將成功地在指定目錄中創建空的新文件。

2. 將文件內容上傳為 PATCH。

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 命令:

curl --request PATCH 'https://www.googleapis.com/upload/drive/v3/files/FILEID?uploadType=multipart' --header 'Authorization: Bearer [ACCESS_TOKEN]' -F "metadata={};type=application/json" -F "file=@ubuntu-logo;type=image/png"   --compressed

參考:

如果我誤解了您的問題並且這不是您想要的結果,我深表歉意。

如果您使用的是 Linux 或 Mac,請使用https://rclone.org/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM