Я пытаюсь удалить файл с помощью сценария оболочки 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
Я получаю URL-адрес ответа, который не найден на сервере, когда я пытаюсь удалить файл на Google Диске с помощью сценари ⇐ Linux
1720626017
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/files?q='${DRIVE_ID}'+in+parents+and+trashed=false&includeItemsFromAllDrives=true&supportsAllDrives=true&fields=files(id,name,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/files/'${FILE_ID}'?supportsAllDrives=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/1Jm4UDqJDDo4-frwjoHsK_qqcDHRZjDkD"
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
Подробнее здесь: [url]https://stackoverflow.com/questions/78731523/i-am-receiving-a-response-url-not-found-on-server-when-i-try-to-delete-file-in-g[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия