mirror of
https://github.com/42wim/matterbridge.git
synced 2024-12-21 10:32:35 +01:00
996 B
996 B
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() {
:= multipartstreamer.New()
ms
.WriteFields(map[string]string{
ms"key": "some-key",
"AWSAccessKeyId": "ABCDEF",
"acl": "some-acl",
})
// Add any io.Reader to the multipart.Reader.
.WriteReader("file", "filename", some_ioReader, size)
ms
// Shortcut for adding local file.
.WriteFile("file", "path/to/file")
ms
, _ := http.NewRequest("POST", "someurl", nil)
req.SetupRequest(req)
ms
, _ := http.DefaultClient.Do(req)
res}
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