"""Локальный ручной тест: чисто attach в OpenCloud, без Streamlit. Использование: 1. Впишите ниже ACCESS_TOKEN, SPACE_ID (если отличается от дефолта), FOLDER и путь к тестовому файлу. 2. Запустите: python scripts/local_opencloud_smoke.py Использует тот же app/opencloud_access.py, что и продакшн-код в app/pipeline/service.py — так что если тут сработает, значит и в приложении сработает (сама логика загрузки не отличается). """ from __future__ import annotations import sys from pathlib import Path sys.path.insert(0, str(Path(__file__).resolve().parents[1])) from app.opencloud_access import OpenCloudUploadError, upload_local_file_to_opencloud # --- Заполните перед запуском --- USERNAME = "PASTE_USERNAME_HERE" # логин, под которым создан App Token в OpenCloud APP_TOKEN = "PASTE_APP_TOKEN_HERE" # App Token из веб-интерфейса OpenCloud (6 слов через пробел) SPACE_ID = "28c0cecf-1e20-4664-b165-5c9d5515e70f" # тестовое пространство AURORA FOLDER = "Райков М.С." # ваша личная папка в OpenCloud LOCAL_FILE = Path(__file__).resolve().parent / "test_upload.xlsx" REMOTE_FILE_NAME = "test_upload.xlsx" # --------------------------------- def main() -> None: if not LOCAL_FILE.exists(): LOCAL_FILE.write_bytes(b"local opencloud smoke test") print(f"Тестовый файл создан: {LOCAL_FILE}") try: url = upload_local_file_to_opencloud( LOCAL_FILE, space_id=SPACE_ID, folder_segments=(FOLDER,), file_name=REMOTE_FILE_NAME, username=USERNAME, token=APP_TOKEN, ) except OpenCloudUploadError as exc: print(f"ОШИБКА: {exc}") raise SystemExit(1) from exc print(f"OK, загружено: {url}") print("Проверьте файл в веб-интерфейсе OpenCloud, в папке", FOLDER) if __name__ == "__main__": main()