Tesla.Multipart (tesla v1.4.0) View Source

Multipart functionality.

Example

mp =
  Multipart.new()
  |> Multipart.add_content_type_param("charset=utf-8")
  |> Multipart.add_field("field1", "foo")
  |> Multipart.add_field("field2", "bar",
    headers: [{"content-id", "1"}, {"content-type", "text/plain"}]
  )
  |> Multipart.add_file("test/tesla/multipart_test_file.sh")
  |> Multipart.add_file("test/tesla/multipart_test_file.sh", name: "foobar")
  |> Multipart.add_file_content("sample file content", "sample.txt")

response = client.post(url, mp)

Link to this section Summary

Functions

Add a parameter to the multipart content-type.

Add a file part. The file will be streamed.

Create a new Multipart struct to be used for a request body.

Link to this section Types

Specs

part_stream() :: Enum.t()

Specs

part_value() :: iodata() | part_stream()

Specs

t() :: %Tesla.Multipart{
  boundary: String.t(),
  content_type_params: [String.t()],
  parts: [Tesla.Multipart.Part.t()]
}

Link to this section Functions

Link to this function

add_content_type_param(mp, param)

View Source

Specs

add_content_type_param(t(), String.t()) :: t()

Add a parameter to the multipart content-type.

Link to this function

add_field(mp, name, value, opts \\ [])

View Source

Specs

add_field(t(), String.t(), part_value(), Keyword.t()) :: t()

Add a field part.

Link to this function

add_file(mp, path, opts \\ [])

View Source

Specs

add_file(t(), String.t(), Keyword.t()) :: t()

Add a file part. The file will be streamed.

Options

  • :name - name of form param
  • :filename - filename (defaults to path basename)
  • :headers - additional headers
  • :detect_content_type - auto-detect file content-type (defaults to false)
Link to this function

add_file_content(mp, data, filename, opts \\ [])

View Source

Specs

add_file_content(t(), part_value(), String.t(), Keyword.t()) :: t()

Add a file part with value.

Same of add_file/3 but the file content is read from data input argument.

Options

  • :name - name of form param
  • :headers - additional headers

Specs

new() :: t()

Create a new Multipart struct to be used for a request body.