https://github.com/flexd/multipartstreamer
https://github.com/flexd/multipartstreamer
Last synced: 5 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/flexd/multipartstreamer
- Owner: flexd
- License: mit
- Fork: true (technoweenie/multipartstreamer)
- Created: 2015-10-15T22:06:19.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2015-10-15T22:06:40.000Z (over 10 years ago)
- Last Synced: 2024-06-20T13:28:20.420Z (almost 2 years ago)
- Language: Go
- Size: 101 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 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.
```go
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