mirror of
https://github.com/ninenines/cowboy.git
synced 2025-07-14 12:20:24 +00:00
Enable range requests support in cowboy_static
This commit is contained in:
parent
7840f6db7b
commit
fe1ee080de
2 changed files with 18 additions and 0 deletions
|
@ -20,6 +20,7 @@
|
|||
-export([forbidden/2]).
|
||||
-export([content_types_provided/2]).
|
||||
-export([charsets_provided/2]).
|
||||
-export([ranges_provided/2]).
|
||||
-export([resource_exists/2]).
|
||||
-export([last_modified/2]).
|
||||
-export([generate_etag/2]).
|
||||
|
@ -340,6 +341,14 @@ charsets_provided(Req, State={Path, _, Extra}) ->
|
|||
{[Charset], Req, State}
|
||||
end.
|
||||
|
||||
%% Enable support for range requests.
|
||||
|
||||
-spec ranges_provided(Req, State)
|
||||
-> {[{binary(), auto}], Req, State}
|
||||
when State::state().
|
||||
ranges_provided(Req, State) ->
|
||||
{[{<<"bytes">>, auto}], Req, State}.
|
||||
|
||||
%% Assume the resource doesn't exist if it's not a regular file.
|
||||
|
||||
-spec resource_exists(Req, State)
|
||||
|
|
|
@ -838,6 +838,15 @@ priv_file_in_ez_archive(Config) ->
|
|||
{_, <<"text/html">>} = lists:keyfind(<<"content-type">>, 1, Headers),
|
||||
ok.
|
||||
|
||||
range_request(Config) ->
|
||||
doc("Confirm that range requests are enabled."),
|
||||
{206, Headers, <<"less space.\n">>} = do_get("/dir/plain.txt",
|
||||
[{<<"range">>, <<"bytes=4-">>}], Config),
|
||||
{_, <<"bytes">>} = lists:keyfind(<<"accept-ranges">>, 1, Headers),
|
||||
{_, <<"bytes 4-15/16">>} = lists:keyfind(<<"content-range">>, 1, Headers),
|
||||
{_, <<"application/octet-stream">>} = lists:keyfind(<<"content-type">>, 1, Headers),
|
||||
ok.
|
||||
|
||||
unicode_basic_latin(Config) ->
|
||||
doc("Get a file with non-urlencoded characters from Unicode Basic Latin block."),
|
||||
_ = [case do_get("/char/" ++ [C], Config) of
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue