[英]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 文件,則不會生成要預覽的縮略圖。 也請解決這個問題。
如果我的理解是正確的,這個答案怎么樣?
使用時,請設置訪問令牌和文件夾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"
image/jpeg
轉換為image/png
。如果我的理解是正確的,這個答案怎么樣?
在用於更新文件的 curl 命令中,不使用元數據。 在這種情況下,縮略圖似乎無法更新。 如果您想在不更新所有元數據的情況下更新縮略圖,請添加-F "metadata={};type=application/json"
並將?uploadType=multipart
添加到端點。 由此,縮略圖被更新。
修改后的 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.