这是一个 bash 脚本,使用 cURL 列出我的 Google Drive 帐户(不是与我分享文件,只有我自己的文件)。您必须在您的帐户中授予对 Google Drive API 的访问权限,并在脚本中填充变量$idclient
and $idsecret
:
#!/bin/bash
idclient="Write your ID client between double quote"
idsecret=Write your ID secret here, with no quote
firefox "https://accounts.google.com/o/oauth2/auth?client_id="${idclient}"&redirect_uri=urn:ietf:wg:oauth:2.0:oob&scope=https://www.googleapis.com/auth/drive&response_type=code"
echo "Paste here the code that Google gave you: "
read apptoken
curl --data client_id="${idclient}" --data client_secret="${idsecret}" --data code="${apptoken}" --data redirect_uri=urn:ietf:wg:oauth:2.0:oob --data grant_type=authorization_code https://www.googleapis.com/oauth2/v4/token > curlID.txt
accesstoken=$(cat curlID.txt | grep 'access_token' | cut -c20-154)
refreshtoken=$(cat curlID.txt | grep refresh_token | cut -c21-123)
cat curlID.txt
rm curlID.txt
curl 'https://www.googleapis.com/drive/v3/files?pageSize=1000&q=%27me%27%20in%20owners&key="'$idclient'"' --header 'Authorization: Bearer "'$accesstoken'"' --header 'Accept: application/json' --compressed > listefichiers_temp.txt
nextPageToken=$(grep nextPageToken listefichiers_temp.txt | sed 's/"nextPageToken": "//' | sed 's/.$//' | sed 's/.$//' )
echo
echo IDCLIENT :
echo $idclient
echo
echo IDSECRET :
echo $idsecret
echo
echo APPTOKEN :
echo $apptoken
echo
echo ACCESS_TOKEN:
echo $accesstoken
echo
echo REFRESH_TOKEN
echo $refreshtoken
echo
echo NEXT_PAGE_TOKEN:
echo $nextPageToken
echo
cat listefichiers_temp.txt | grep '"id"' | cut -c 11- | sed 's/.$//' | sed 's/.$//' >> listefichiers.txt
touch log1.txt
cat listefichiers_temp.txt >> log1.txt
### LOOP ###
while grep nextPageToken listefichiers_temp.txt; do
nextPageToken=$(grep nextPageToken listefichiers_temp.txt | sed 's/"nextPageToken": "//' | sed 's/.$//' | sed 's/.$//' | cut -c 2- )
echo NEXT_PAGE_TOKEN
echo $nextPageToken
echo
rm listefichiers_temp.txt
curl \
'https://www.googleapis.com/drive/v3/files?pageSize=1000&pageToken='$nextPageToken'&q=%27me%27%20in%20owners&key='$idclient'' \
--header 'Authorization: Bearer '$accesstoken'' \
--header 'Accept: application/json' \
--compressed > listefichiers_temp.txt
cat listefichiers_temp.txt >> log1.txt
cat listefichiers_temp.txt | grep '"id"' | cut -c 11- | sed 's/.$//' | sed 's/.$//' >> listefichiers.txt
echo
echo Nombre de fichiers
cat listefichiers.txt | wc -l
echo
nextPageToken=
done
date
echo Nombre de fichiers
cat listefichiers.txt | wc -l
最初,我的脚本不起作用。开头有一个不需要的空格$nextTokenPage
所以我添加一个cut在正确的位置删除这个错误的空格。我能够在查看脚本的输出时解决问题sh -xe script.sh
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)