the api does not work for me to delete data on the team account, please help, does not see the folder space, just empty
import dropbox
from datetime import datetime, timedelta
import time
# Замените 'YOUR_TEAM_ACCESS_TOKEN' на ваш реальный токен доступа к командному Dropbox
ACCESS_TOKEN = ''
team_dbx = dropbox.DropboxTeam(oauth2_access_token=ACCESS_TOKEN, app_key='', app_secret='')
# Выбираем первый доступный член команды
team_member_id = team_dbx.team_members_list().members[0].profile.team_member_id
dbx = team_dbx.as_user(team_member_id)
# Функция для проверки папок и удаления файлов .raw
def delete_raw_files(folder_path=''):
try:
print('1 действие')
# Получаем список файлов и папок в папке
res = dbx.files_list_folder(folder_path)
# Флаг для проверки наличия файлов в папке
has_old_file = False
for entry in res.entries:
print('2 действие')
if isinstance(entry, dropbox.files.FileMetadata):
print(f'{entry.path_lower} {entry.client_modified} ')
# Проверяем, если файл старше 120 дней
if entry.client_modified < datetime.now() - timedelta(days=120):
has_old_file = True
elif isinstance(entry, dropbox.files.FolderMetadata):
# Рекурсивно обрабатываем вложенные папки
delete_raw_files(entry.path_lower)
# Если найдены старые файлы и папка содержит "raw" и не содержит "согласие", удаляем файлы .raw
if has_old_file and "raw" in folder_path.lower() and "согласие" not in folder_path.lower():
delete_raw_files_in_folder(folder_path)
except Exception as e:
print(f"Ошибка: {e}")
def delete_raw_files_in_folder(folder_path):
try:
print('3')
# Получаем список файлов в папке
res = dbx.files_list_folder(folder_path)
# Список форматов файлов для удаления
formats = [
'.3fr', '.ari', '.arw', '.bay', '.braw', '.crw',
'.cr2', '.cr3', '.cap', '.data', '.dcs', '.dcr',
'.dng', '.drf', '.eip', '.erf', '.fff', '.gpr',
'.iiq', '.k25', '.kdc', '.mdc', '.mef', '.mos',
'.mrw', '.nef', '.nrw', '.obm', '.orf', '.pef',
'.ptx', '.pxn', '.r3d', '.raf', '.raw', '.rwl',
'.rw2', '.rwz', '.sr2', '.srf', '.srw', '.tif',
'.x3f', '.xmp'
]
for entry in res.entries:
if isinstance(entry, dropbox.files.FileMetadata):
# Проверяем, заканчивается ли имя файла на один из форматов
if any(entry.name.lower().endswith(fmt) for fmt in formats):
# Удаляем файл
dbx.files_delete(entry.path_lower)
print(f"Удален файл: {entry.path_lower}")
except Exception as e:
print(f"Ошибка при удалении файлов в папке {folder_path}: {e}")
while True:
# Запускаем сканирование папки "Архив"
delete_raw_files()
#time.sleep(60*60*24*7)