[英]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.