View Source ExAws.S3.Upload (ExAws.S3 v2.5.6)

Represents an AWS S3 Multipart Upload operation.

Implements ExAws.Operation.perform/2

Examples

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

See ExAws.S3.upload/4 for options

Summary

Types

t()

@type t() :: %ExAws.S3.Upload{
  bucket: String.t(),
  opts: Keyword.t(),
  path: String.t(),
  service: :s3,
  src: Enumerable.t(),
  upload_id: String.t() | nil
}

Functions

complete(parts, op, config)

initialize(op, config)

stream_file(path, opts \\ [])

@spec stream_file(path :: binary(), opts :: [{:chunk_size, pos_integer()}]) ::
  File.Stream.t()

Open a file stream for use in an upload.

Chunk size must be at least 5 MiB. Defaults to 5 MiB

upload_chunk(arg, op, config)

@spec upload_chunk({binary(), pos_integer()}, t(), ExAws.Config.t()) ::
  {pos_integer(), binary()} | {:error, term()}

upload_chunk!(arg, op, config)

@spec upload_chunk!({binary(), pos_integer()}, t(), ExAws.Config.t()) ::
  {pos_integer(), binary()}

Upload a chunk for an operation.

The first argument is a tuple with the binary contents of the chunk, and a positive integer index indicating which chunk it is. It will return this index along with the etag response from AWS necessary to complete the multipart upload.