支持使用HTTP / REST下载部分文件



我有一个客户端/服务器架构,其中客户端需要定期从服务器下载大文件。假设客户端下载了 9Gb 的 10Gb 文件,然后暂时失去互联网连接。当客户端重新获得连接时,我希望客户端能够下载剩余的 1Gb 文件,而不是需要从头开始重新下载所有内容。

是否有任何平台、库、框架等可以处理这个问题?如果没有,有没有人对如何最好地解决这个问题有任何想法?

服务器/客户端技术

服务器 - Python/Django/Django REST Framework

客户端 - 安卓/iOS/c ++

当前服务器代码

def post(self, request):
try:
user = request.user
file = MyFile.objects.filter(user_id=user)
response = FileResponse(open(file.path, 'rb'))
return response
except Exception as e:
return Response({'status': str(e)}, content_type="application/json")

我没有尝试过,但您可以尝试在文件服务视图中实现范围标头支持并尝试一下。默认情况下,浏览器可能会发送标头。

铬和范围请求

示例 PHP 实现

HTTP 范围请求

如何提出范围请求

最新更新