ExAws.S3.upload

You're seeing just the function upload, go back to ExAws.S3 module for more information.
Link to this function

upload(source, bucket, path, opts \\ [])

View Source

Specs

upload(
  source :: Enumerable.t(),
  bucket :: String.t(),
  path :: String.t(),
  opts :: upload_opts()
) :: ExAws.S3.Upload.t()

Multipart upload to S3.

Handles initialization, uploading parts concurrently, and multipart upload completion.

Uploading a stream

Streams that emit binaries may be uploaded directly to S3. Each binary will be uploaded as a chunk, so it must be at least 5 megabytes in size. The S3.Upload.stream_file helper takes care of reading the file in 5 megabyte chunks.

"path/to/big/file"
|> S3.Upload.stream_file
|> S3.upload("my-bucket", "path/on/s3")
|> ExAws.request! #=> :done

Options

These options are specific to this function

  • See Task.async_stream/5's :max_concurrency and :timeout options.
    • :max_concurrency - only applies when uploading a stream. Sets the maximum number of tasks to run at the same time. Defaults to 4
    • :timeout - the maximum amount of time (in milliseconds) each task is allowed to execute for. Defaults to 30_000.

All other options (ex. :content_type) are passed through to ExAws.S3.initiate_multipart_upload/3.