Я получаю URL-адрес ответа, который не найден на сервере, когда я пытаюсь удалить файл на Google Диске с помощью сценариLinux

Ответить
Anonymous
 Я получаю URL-адрес ответа, который не найден на сервере, когда я пытаюсь удалить файл на Google Диске с помощью сценари

Сообщение Anonymous »

Я пытаюсь удалить файл с помощью сценария оболочки bash, который я загрузил на общий диск Google, используя другой сценарий оболочки. Я могу перечислить содержимое папки, в которой находится файл, и вернуть имена и идентификаторы файлов. однако, когда я пытаюсь удалить файл, в ответ говорится, что запрошенный URL-адрес не найден на сервере.
Функции, которые я вызываю из сценария оболочки, приведены ниже. Идентификатор файла должен быть действительным, поскольку он отображается правильно и соответствует ссылке на файл, полученный через сам Google Диск. Я правильно устанавливаю токен доступа.
Я пробовал различные подходы, чтобы указать, что файл должен быть удален/удален, например, используя DELETE вместо POST, и экспериментировал с идентификатором файла, добавляя полную ссылку. с Google Диска и других коннотаций, но безуспешно. Я ожидал, что ответ будет успешным!
#!/bin/bash
set -e

# Function to get a new access token using the refresh token

get_access_token() {
RESPONSE=$(curl -s -X POST https://oauth2.googleapis.com/token \
-d client_id=${CLIENT_ID} \
-d client_secret=${CLIENT_SECRET} \
-d refresh_token=${REFRESH_TOKEN} \
-d grant_type=refresh_token)

ACCESS_TOKEN=$(echo ${RESPONSE} | jq -r '.access_token')
echo -e "Access token acquired '${ACCESS_TOKEN}'"
}

get_drive_contents () {

DRIVE_CONTENTS=$(curl -s GET \
"https://www.googleapis.com/drive/v3/fil ... ,mimeType)" \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Accept: application/json")

echo -e ${DRIVE_CONTENTS}
}

delete_files () {
echo $DRIVE_CONTENTS | jq -c -r '.files[]' | while read item; do
FILE_ID=$(echo ${item} | jq -r '.id')
FILENAME=$(echo ${item} | jq -r '.name')
echo "fileid=$FILE_ID filename=$FILENAME"

echo -e "Delete file request"
DELETE_RESPONSE=$(curl -s -X POST "https://www.googleapis.com/drive/v3/fil ... rives=true" \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"trashed": true}')

echo -e "DELETE url response: $DELETE_RESPONSE"

exit
done

}

if [ $# -ne 1 ]; then
echo "Error: list_gdrive.sh requires 1 parameter"
echo -e "Usage: $0 gdrive_full_path"
echo -e "Example gdrive full path :https://drive.google.com/drive/folders/ ... qcDHRZjDkD"
exit 1
fi

DRIVE_URL=$1

echo -e "Gdrive: $DRIVE_URL"

CLIENT_ID="xxxxxxx.apps.googleusercontent.com"
CLIENT_SECRET="xxxxxxxxxx"
REFRESH_TOKEN="xxxxxxxxxxx}

get_access_token

ACCESS_TOKEN=$(echo $RESPONSE | jq -r '.access_token')

echo -e "Access Token initialized"

get_drive_contents

delete_files

echo -e "All processing complete"

exit 0


Подробнее здесь: https://stackoverflow.com/questions/787 ... -file-in-g
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Linux»