java - Netty 文件服务器

标签 java netty fileserver

我一直在 HTTP 文件服务器和上传服务器上浏览示例。

我正在编写一个文件服务器,它可以执行以下两项操作:发送和接收文件。但我不确定如何合并这两个管道。 或者也许我需要根据命令(上传或获取文件)修改它们。即使文档声明 channel 一旦建立就无法修改管道,我看到“端口统一”示例确实会根据数据对其进行修改。

任何帮助将不胜感激。

最佳答案

听起来您需要一个 HTTP 服务器,并区分用于将文件下载到客户端的 HTTP GET 和用于将文件上传到服务器的 POST,而不是区分类型管道。看看HttpStaticFileServerHandler用于通过 GET 请求下载文件。您需要调整的是 messageReceived 的第一行:

@Override
public void messageReceived(ChannelHandlerContext ctx, MessageEvent e) throws Exception {
    HttpRequest request = (HttpRequest) e.getMessage();

    if (request.getMethod().equals(HttpMethod.POST)) {
        // receive uploaded file
        return;
    }

    if (request.getMethod() != GET) {
        sendError(ctx, METHOD_NOT_ALLOWED);
        return;
    }

    ...

关于java - Netty 文件服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11491798/

相关文章:

java - 如何将 alfresco jlan 文件服务器设置为独立的 java 包?

ssl - 为子域创建 SSL 证书

java - 使用 tools.jar 作为依赖项使用 java -jar 运行 spring boot

java - 是否可以重复从 channel 写入和读取?

Netty - 调用 channel.disconnect() 实际上关闭了 channel

amazon-ec2 - 亚马逊 ec2 上的 Websockets 连接失败

python - 如何从 SimpleHTTPServer 获取客户端 IP

java - 为什么我得到 "Static Error: This class does not have a static void main method accepting String[]."即使我有它?

java - 在自定义 JSP 标记中传递 Java 对象值

java - 在 java derby db 中执行选择请求时如何将磁盘 100 减少到最小使用量