2

HTTP ファイル サーバーとアップロード サーバーの両方で例を参照してきました。

ファイルの送信と受信の両方を実行できるファイルサーバーを作成しています。しかし、2 つのパイプラインをマージする方法がわかりません。または、コマンド (ファイルのアップロードまたは取得) に応じてそれらを変更する必要があるかもしれません。一度確立されたチャネルのパイプラインを変更できないとドキュメントに記載されている場合でも、「ポートの統合」の例では、データに応じてパイプラインが変更されていることがわかります。

どんな助けでも大歓迎です。

4

2 に答える 2

2

パイプラインでタイプを区別するのではなく、HTTP サーバーが必要でありGET、クライアントにファイルをダウンロードするための HTTP とサーバーにファイルをアップロードするための HTTP を区別しているようです。リクエストを含むファイルをダウンロードするためのHttpStaticFileServerHandlerPOSTを見てください。適応する必要があるのは、次の最初の行です。GETmessageReceived

@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;
    }

    ...
于 2012-07-16T05:50:06.083 に答える
1

アプリは 2 つのサブアプリが 1 つになったものと考える必要があると思います。

最初のサブアプリはファイル サーバーです。Http ファイル サーバーの例に従って、そのためのパイプラインをブートストラップして作成する必要があります。

2 番目のサブアプリはアップロード クライアントです。http クライアントの例に従って、そのためのパイプラインを個別にブートストラップして作成する必要があります。

于 2012-07-15T21:27:09.450 に答える