class Aws::S3::MultipartFileUploader

def compute_parts(upload_id, source, options)

def compute_parts(upload_id, source, options)
  size = File.size(source)
  default_part_size = compute_default_part_size(size)
  offset = 0
  part_number = 1
  parts = []
  while offset < size
    parts << upload_part_opts(options).merge(
      upload_id: upload_id,
      part_number: part_number,
      body: FilePart.new(
        source: source,
        offset: offset,
        size: part_size(size, default_part_size, offset)
      )
    )
    part_number += 1
    offset += default_part_size
  end
  parts
end