__init__.py 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. # coding=utf-8
  2. """
  3. 存储模块 - 支持多种存储后端
  4. 支持的存储后端:
  5. - local: 本地 SQLite + TXT/HTML 文件
  6. - remote: 远程云存储(S3 兼容协议:R2/OSS/COS/S3 等)
  7. - auto: 根据环境自动选择(GitHub Actions 用 remote,其他用 local)
  8. """
  9. from trendradar.storage.base import (
  10. StorageBackend,
  11. NewsItem,
  12. NewsData,
  13. convert_crawl_results_to_news_data,
  14. convert_news_data_to_results,
  15. )
  16. from trendradar.storage.local import LocalStorageBackend
  17. from trendradar.storage.manager import StorageManager, get_storage_manager
  18. # 远程后端可选导入(需要 boto3)
  19. try:
  20. from trendradar.storage.remote import RemoteStorageBackend
  21. HAS_REMOTE = True
  22. except ImportError:
  23. RemoteStorageBackend = None
  24. HAS_REMOTE = False
  25. __all__ = [
  26. # 基础类
  27. "StorageBackend",
  28. "NewsItem",
  29. "NewsData",
  30. # 转换函数
  31. "convert_crawl_results_to_news_data",
  32. "convert_news_data_to_results",
  33. # 后端实现
  34. "LocalStorageBackend",
  35. "RemoteStorageBackend",
  36. "HAS_REMOTE",
  37. # 管理器
  38. "StorageManager",
  39. "get_storage_manager",
  40. ]