我需要通过PHP复制一些大文件(6 GB).我怎样才能做到这一点?该Copy()功能无法做到.
我在Windows 32/64上使用PHP 5.3.
考虑我们当前的架构:
+---------------+
| Clients |
| (API) |
+-------+-------+
?
?
+-------+-------+ +-----------------------+
| Load Balancer | | Nginx |
| (AWS - ELB) +<-->+ (Service Routing) |
+---------------+ +-----------------------+
?
?
+-----------------------+
| Nginx |
| (Backend layer) |
+-----------+-----------+
?
?
----------------- +-----------+-----------+
File Storage | Gunicorn |
(AWS - S3) <-->+ (Django) |
----------------- +-----------------------+
Run Code Online (Sandbox Code Playgroud)
当客户端,移动设备或Web尝试在我们的服务器上上传大文件(超过GB)时,通常会面临空闲的连接超时.从他们的客户端库,在iOS上,或从我们的负载均衡器.
当客户端实际上载文件时,不会发生超时,因为连接不是"空闲",正在传输字节.但我认为当文件被转移到Nginx后端层并且Django开始将文件上传到S3时,客户端和我们的服务器之间的连接将变为空闲,直到上传完成.
有没有办法防止这种情况发生,我应该在哪一层解决这个问题?