V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
axwz88
V2EX  ›  程序员

小白提问,怎样搭建一个用于下载的服务器?

  •  
  •   axwz88 · 2022-05-19 04:50:51 +08:00 via Android · 3930 次点击
    这是一个创建于 921 天前的主题,其中的信息可能已经有所发展或是发生改变。

    今天早上用 tomcat 搭建,映射虚拟路径,绑定,解析域名,可以实现文件下载了,但是在浏览器测试多个请求下载的时候经常下载到中间就报网络错误,下载直接失败了,是 tomcat 续传不好的原因,还是浏览器的原因,有办法解决这个问题吗?

    20 条回复    2022-05-20 04:32:57 +08:00
    tinytoadd
        1
    tinytoadd  
       2022-05-19 04:59:05 +08:00 via Android
    搭建 HFS ( http file server)的话,有许多办法。不太清楚具体的需求,简单点就用`python -m http.server`
    ryc111
        2
    ryc111  
       2022-05-19 05:08:17 +08:00
    安装 nginx:

    使用配置:
    server {
    listen 80;
    server_name 10.1.2.3; # 自己 PC 的 ip 或者域名如下:
    # server_name *.example.org;

    charset utf-8;
    root /home/xx/share; # 存放文件的目录
    location / {
    autoindex on; # 索引
    autoindex_exact_size on; # 显示文件大小
    # autoindex_localtime on; # 显示文件时间
    }
    }
    重启服务
    seers
        3
    seers  
       2022-05-19 07:36:09 +08:00 via Android
    换 transmission+aria2c ,然后用 Nginx 搞个 autoindex 浏览
    KomiSans
        4
    KomiSans  
       2022-05-19 07:37:53 +08:00
    可以试试 apache httpd 和 nginx 搭配做下载页面
    LeegoYih
        5
    LeegoYih  
       2022-05-19 09:56:20 +08:00
    我个人用 minio ,公司用 Amazon S3 、阿里云 OSS 之类的
    ikidou
        6
    ikidou  
       2022-05-19 10:32:31 +08:00
    直接 caddy 吧,自动 HTTPS ,配置文件也简单
    xinJang
        7
    xinJang  
       2022-05-19 10:55:10 +08:00
    几十块买个玩客云不香吗?
    xinJang
        8
    xinJang  
       2022-05-19 10:56:01 +08:00
    好吧 我的错 没看内容 只看了标题 忽略我的回复
    lingo
        9
    lingo  
       2022-05-19 11:08:21 +08:00
    我是家里内网的 aria2+samba 。
    如果是外网的话,我会选择 aria2+caddy 。caddy 静态访问加个密码。简简单单。
    libook
        10
    libook  
       2022-05-19 11:13:10 +08:00
    临时用就是 Python 起个 http 模块,一条指令的事;
    长期用装个 Ngingx ,配置个 root 开个 autoindex 就完事了。
    feitxue
        11
    feitxue  
       2022-05-19 11:20:04 +08:00
    你描述的细节过少,不好判断原因.
    非 java 项目,我个人不建议上 tomcat 容器来搞静态内容.
    cjpjxjx
        12
    cjpjxjx  
       2022-05-19 11:23:45 +08:00
    目录浏览?
    geekvcn
        13
    geekvcn  
       2022-05-19 11:32:20 +08:00 via Android
    静态内容请用 Nginx
    geekvcn
        14
    geekvcn  
       2022-05-19 11:33:20 +08:00 via Android
    下载服务器最好调优下内核流控
    mapleincode
        15
    mapleincode  
       2022-05-19 12:34:11 +08:00
    静态: nginx
    带网页: python -m http.server (1 楼)
    带网页好看点: simple-http-server (类似关键字的基本都是)
    对象存储: minio

    目前我对于简单文件并且没有安全问题都是 python 起。隐私文件上传下载都依赖 minio ,minio 支持分享,上传,直接操作,直链,基本对象存储的功能都有了
    gesse
        16
    gesse  
       2022-05-19 14:06:29 +08:00
    我个人理解,当然不一定全对,知识可能有理解不透的地方。

    1. 极有可能是你服务器带宽的问题,比如你服务器带宽就 5Mbit/s ,实际理论下载速度最宽 500KB/s 左右。
    2. 断点续传需要客户端支持,和 http 服务器的头支持(静态文件下载一般都支持,如果是动态输出,则需要看脚本有没有考虑 Content-Range 头),其实就是利用 http 协议里的 Content-Range 头,把一个文件一部分一部分搬运回来。
    3. 建议用 nginx 作为静态文件下载服务器。
    dream4ever
        17
    dream4ever  
       2022-05-19 15:39:39 +08:00
    我在 Windows Server + IIS 上遇到过这种问题,发现是下载用时过长,IIS 设置的超时时间为 120s ,超过了这个限值,连接就被自动断开了。
    yinft
        18
    yinft  
       2022-05-19 15:42:00 +08:00
    minio
    zerofancy
        19
    zerofancy  
       2022-05-20 04:31:52 +08:00 via Android
    Python 的这个 simplehttpserver 虽然启动简单,但真不能算好用
    zerofancy
        20
    zerofancy  
       2022-05-20 04:32:57 +08:00 via Android
    别说断点续传了,它甚至不能支持同时下载两个文件,这么多人推这个挺离谱
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5629 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 08:38 · PVG 16:38 · LAX 00:38 · JFK 03:38
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.