MCPcopy Create free account
hub / github.com/TheSmallHanCat/flow2api / _resolve_download_proxy

Method _resolve_download_proxy

src/services/file_cache.py:59–88  ·  view source on GitHub ↗

根据媒体类型解析下载代理地址。

(
        self,
        media_type: str,
        fingerprint: Optional[Dict[str, Any]] = None,
    )

Source from the content-addressed store, hash-verified

57 return None
58
59 async def _resolve_download_proxy(
60 self,
61 media_type: str,
62 fingerprint: Optional[Dict[str, Any]] = None,
63 ) -> Optional[str]:
64 """根据媒体类型解析下载代理地址。"""
65 if isinstance(fingerprint, dict):
66 fingerprint_proxy = str(fingerprint.get("proxy_url") or "").strip()
67 if fingerprint_proxy:
68 return fingerprint_proxy
69
70 if not self.proxy_manager:
71 return None
72
73 try:
74 # 媒体下载(图片/视频)优先使用独立的上传/下载代理
75 if media_type in ("image", "video") and hasattr(self.proxy_manager, "get_media_proxy_url"):
76 return await self.proxy_manager.get_media_proxy_url()
77
78 # 其他下载走请求代理
79 if hasattr(self.proxy_manager, "get_request_proxy_url"):
80 return await self.proxy_manager.get_request_proxy_url()
81
82 # 向后兼容旧实现
83 if hasattr(self.proxy_manager, "get_proxy_url"):
84 return await self.proxy_manager.get_proxy_url()
85 except Exception as e:
86 debug_logger.log_warning(f"Resolve download proxy failed: {str(e)}")
87
88 return None
89
90 def _guess_extension(self, url: str, media_type: str) -> str:
91 """尽量保留原始扩展名,未知时回退到默认值。"""

Callers 2

download_and_cacheMethod · 0.95
retrieve_image_dataFunction · 0.80

Calls 4

get_media_proxy_urlMethod · 0.80
get_proxy_urlMethod · 0.80
log_warningMethod · 0.80
get_request_proxy_urlMethod · 0.45

Tested by

no test coverage detected