# pds **Repository Path**: lyaohe/pds ## Basic Information - **Project Name**: pds - **Description**: PDS -- Proxy Download Server(代理下载服务、透传下载服务) - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2017-07-14 - **Last Updated**: 2020-12-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # PDS (Proxy Download Server) PDS -- Proxy Download Server(代理下载服务器) - 基于PHP Curl实现代理下载服务器,也可以当作 代理请求服务器、中转服务器、透传服务器 - 分片输出,避免大文件崩溃,节约内存,可以做PHP大文件下载 - CURLOPT_WRITEFUNCTION 参数的 example 代码 Request: > pds.php?url=http://example.com/ Debug: > pds.php?url=http://example.com/&debug=1 ### 使用场景 ##### 1. 代理(透传)下载服务器 有时候会遇到下载一个文件会特别慢,甚至只有几kb/s,不是存放文件的服务器带宽不足,也不是我网络太慢,而是中间走的网络太差,这时候可以自己部署一台代理(中转)服务器来下载,往往下载速度可以翻10倍以上,简直是天堂与地狱的区别,祝你好运。 ##### 2. 简单的云存储架构: 业务服务器 + 存放文件的服务器 - 业务服务器:处理客户端(浏览器)的请求,先做业务逻辑处理,例如:安全检查、请求频率检查、日志记录,然后再通过PDS请求文件服务器,返回给客户端 - 存放文件的服务器,可以是多台内网服务器,不用外网IP节省带宽,通过内网,提供Http请求获取文件即可 目前只想到2种场景,你们还想什么场景可以用到,欢迎跟我交流,我来补充分享给大家 Email: lyaohe@gmail.com ### 项目灵感 有一次在Github下载软件安装包,国内网络下载超慢,想到了代理下载,或者用中转服务器来下载快很多,就开始设计和调研,并动手写个代理下载服务。 ### 正在解决的问题 1. 请求百度有点问题 - `pds.php?url=https://www.baidu.com` 请求失败 - `pds.php?url=https://www.baidu.com&debug=1` Debug输出是成功,还在分析header报文 2. 多考虑一些异常情况 ### 计划继续开发的功能 1. 支持post请求、支持cookie透传,还在想哪些场景需要 2. 简单的网页代理,返回的Body内容的链接替换成代理链接 3. 复杂的网页代理,JS的异步请求链接也替换成代理链接 更新时间: 2017.07.14