2016-02-03 05:04:22 +00:00
|
|
|
package main
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"bytes"
|
|
|
|
|
"flag"
|
2016-02-09 03:39:09 +00:00
|
|
|
"fmt"
|
2016-05-01 17:42:28 +00:00
|
|
|
"os"
|
2016-02-03 05:04:22 +00:00
|
|
|
|
2016-05-08 01:05:52 +00:00
|
|
|
"github.com/apex/log"
|
2016-05-01 19:40:30 +00:00
|
|
|
"github.com/apex/log/handlers/text"
|
2016-02-03 05:04:22 +00:00
|
|
|
"github.com/harlow/kinesis-connectors"
|
2016-02-09 03:39:09 +00:00
|
|
|
"github.com/harlow/kinesis-connectors/emitter/s3"
|
2016-02-03 05:04:22 +00:00
|
|
|
)
|
|
|
|
|
|
|
|
|
|
func main() {
|
2016-05-08 01:05:52 +00:00
|
|
|
log.SetHandler(text.New(os.Stderr))
|
|
|
|
|
log.SetLevel(log.DebugLevel)
|
|
|
|
|
|
|
|
|
|
var (
|
|
|
|
|
app = flag.String("a", "", "App name")
|
|
|
|
|
bucket = flag.String("b", "", "Bucket name")
|
|
|
|
|
stream = flag.String("s", "", "Stream name")
|
|
|
|
|
)
|
2016-02-03 05:04:22 +00:00
|
|
|
flag.Parse()
|
2016-05-01 17:42:28 +00:00
|
|
|
|
2016-05-08 01:05:52 +00:00
|
|
|
e := &s3.Emitter{
|
2016-05-01 17:42:28 +00:00
|
|
|
Bucket: *bucket,
|
|
|
|
|
Region: "us-west-1",
|
|
|
|
|
}
|
2016-02-03 05:04:22 +00:00
|
|
|
|
2016-05-08 01:05:52 +00:00
|
|
|
c := connector.NewConsumer(connector.Config{
|
|
|
|
|
AppName: *app,
|
|
|
|
|
StreamName: *stream,
|
|
|
|
|
})
|
2016-05-01 17:42:28 +00:00
|
|
|
|
2016-02-09 03:39:09 +00:00
|
|
|
c.Start(connector.HandlerFunc(func(b connector.Buffer) {
|
|
|
|
|
body := new(bytes.Buffer)
|
|
|
|
|
|
|
|
|
|
for _, r := range b.GetRecords() {
|
|
|
|
|
body.Write(r.Data)
|
|
|
|
|
}
|
|
|
|
|
|
2016-05-08 01:05:52 +00:00
|
|
|
err := e.Emit(
|
2016-02-09 03:39:09 +00:00
|
|
|
s3.Key("", b.FirstSeq(), b.LastSeq()),
|
|
|
|
|
bytes.NewReader(body.Bytes()),
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
if err != nil {
|
2016-05-01 17:42:28 +00:00
|
|
|
fmt.Printf("error %s\n", err)
|
|
|
|
|
os.Exit(1)
|
2016-02-09 03:39:09 +00:00
|
|
|
}
|
|
|
|
|
}))
|
2016-02-03 05:04:22 +00:00
|
|
|
|
|
|
|
|
select {} // run forever
|
|
|
|
|
}
|