Скачивание фейлов для chuncked-файла в браузере Elixir - PullRequest
0 голосов
/ 09 мая 2020

Похоже, мне не хватает чего-то добавить в свой код. Я отправляю фрагментированный HTTP-ответ с типом содержимого text/csv, поэтому, если я открою его в браузере, он загрузится. Но он не загружается, и я понятия не имею о его решении, так как изучаю эликсир. Вот код, который я пытаюсь сделать. Не могли бы вы мне помочь?

get "/dbs/foo/tables/source" do
  conn
  |> put_resp_content_type("text/csv")
  |> send_chunked(206)
  |> foo_data
end


  defp foo_data(conn) do
    Enum.reduce_while(["every-","word-","is-","a-","chunk"], conn, fn (chunk, conn) ->
      case Plug.Conn.chunk(conn, chunk) do
        {:ok, conn} ->
          {:cont, conn}
        {:error, :closed} ->
          {:halt, conn}
      end
    end)
  end

почтальон

postman screenshot

chrome

chrome screenshot

1 Ответ

0 голосов
/ 09 мая 2020

Я выяснил, что делал не так. Я отправлял код состояния 206 вместо 200. Благодарим @NobbZ (Slack), который указал на меня. После изменения кода состояния он работает должным образом.

...