2016-01-07 3 views
0

Просмотрев исходный код и играя с некоторыми примерами игрушек, я пришел к выводу, что Netty в настоящее время (с 5.0.0 alpha2) поддерживает только multipart/form-data, но не multipart/mixed, по крайней мере, не указан в RFC1342 (sec. 7.2). Похоже, что смешанный поддерживается внутри части в multipart/form-data.многопользовательская/смешанная поддержка в Netty

Это действительно так, или я что-то упускаю?

ответ

1

Поскольку я получаю тот же самый вопрос, я выкладываю здесь то, что может быть началом answear ...

Однако, текущая реализация, кажется, имеет 2 ограничения:

1) он поддерживает только multipart/form-data. Я также хотел бы использовать для использования multipart/mixed, который очень похож на провод (см. http://www.w3.org/Protocols/rfc1341/7_2_Multipart.html). Я думаю, что кодировщик/декодер может быть расширен для понимания multipart/mixed и по-прежнему создавать те же типы HttpDatas.

Да, текущий кодек ориентирован на multipart/form-data. Я могу расширить или предложить новый (на его основе, вероятно), чтобы обеспечить поддержку multipart/mixed. Текущий кодек был сделан на основе потребностей пользователя (мой в начале, другие следующие). Поскольку никто еще не запросил поддержку для multipart/mixed, он не был закодирован, за исключением внутреннего multipart/mixed code. Ссылка RFC1867.

Как Нетти любит взносы, вы больше, чем могут предложить Yours ;-)

2), кажется, что это возможно только использовать эффективные HttpDatas как FileUpload, если вы находитесь в многоголосном/form- данные. Я хотел бы иметь возможность добавить FileUpload в запрос и таким образом сделать содержимое файла, являющегося телом запроса, не сделав его многостраничным запросом . Я думаю, что это можно сделать, расширив Encoder Standard Post , чтобы понять FileUploads.

Это может быть немного сложнее, поскольку это необходимо сделать без multipart, который в настоящее время содержит класс FileUpload.

Возможно, хорошим направлением может быть переход на ChunkFile или ChunkNioFile и объединение его с «вашим» HttpCodec или в вашем «HttpHandler» при выполнении запроса тела, чтобы передать содержимое через ChunkFile.

Надеясь, это поможет вам в правильном направлении ...

+0

Благодаря Фредерик, я был в состоянии осуществить 2-ю (одна часть потоковый файл загрузки/загрузки) с помощью ChunkNioFile на стороне клиента, а затем демпинг в файл используя код, украденный из AbstractDiskHttpData. Было бы неплохо немного рассказать серверную сторону (например, как-то вроде ChunkedOutput с ChunkedNioFileOutput). Что касается multipart/mixed, спасибо за разъяснение. Я могу попытаться работать над реализацией, если наша потребность действительно возникнет, и никто не сделал это первым ;-) – ttonelli

Смежные вопросы