簡體   English   中英

gdrive 上傳失敗並顯示“令牌已過期或撤銷”。 如果它使用 crontab 執行但以 root 身份運行 (sudo -s)

[英]gdrive upload fails with "Token has been expired or revoked." if it is executed with crontab but works as root (sudo -s)

我編寫了一個腳本,可以將圖像上傳/更新到我的 gdrive。 它應該由 crontab 條目每 15 分鍾執行一次。

我以 root (sudo -s) 身份測試了腳本,它可以工作並且可以訪問我的 gdrive。 但是當我的 crontab 條目啟動時它不起作用。 然后我收到以下消息作為錯誤。

Uploading upload.jpg
Failed to upload file: Patch https://www.googleapis.com/upload/drive/v3/files/1y0000hMVV444qjuxC5xqL3hsmyAuoXya?alt=json&fields=id%2Cname%2Csize&uploadType=multipart: oauth2: cannot fetch token: 400 Bad Request
Response: {
  "error": "invalid_grant",
  "error_description": "Token has been expired or revoked."
}

這是我的 crontab 條目

*/15  * * * *   root    /srv/media/webcam/nordbahnstrasse/scripts/upload_image.sh     >> /var/log/upload_image.txt

gdrive 命令檢查存儲在token_v2.json中的令牌。 該文件的默認位置是在用戶家中。

$HOME/.gdrive/token_v2.json

使用 sudo -s 更改用戶,但變量 $HOME 仍然指向原始用戶。 以 crontab 作為 root 運行命令/root/.gdrive/token_v2.json

所以解決方法是將文件token_v2.json復制到/root/.gdrive/token_v2.json

暫無
暫無

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

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