You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
matterbridge/vendor/github.com/technoweenie/multipartstreamer
Wim 51062863a5 Use mod vendor for vendored directory (backwards compatible) 6 years ago
..
LICENSE Add missing imports 8 years ago
README.md Use mod vendor for vendored directory (backwards compatible) 6 years ago
multipartstreamer.go Add missing imports 8 years ago

README.md

multipartstreamer

Package multipartstreamer helps you encode large files in MIME multipart format without reading the entire content into memory. It uses io.MultiReader to combine an inner multipart.Reader with a file handle.

package main

import (
  "github.com/technoweenie/multipartstreamer.go"
  "net/http"
)

func main() {
  ms := multipartstreamer.New()

  ms.WriteFields(map[string]string{
    "key":			"some-key",
    "AWSAccessKeyId":	"ABCDEF",
    "acl":			"some-acl",
  })

  // Add any io.Reader to the multipart.Reader.
  ms.WriteReader("file", "filename", some_ioReader, size)

  // Shortcut for adding local file.
  ms.WriteFile("file", "path/to/file")

  req, _ := http.NewRequest("POST", "someurl", nil)
  ms.SetupRequest(req)

  res, _ := http.DefaultClient.Do(req)
}

One limitation: You can only write a single file.

TODO

  • Multiple files?

Credits

Heavily inspired by James

https://groups.google.com/forum/?fromgroups=#!topic/golang-nuts/Zjg5l4nKcQ0