in go-example-logs-api-extension/agent/logger.go [97:125]
func (l *S3Logger) PushLog(log string) error {
l.logBuffer.Write([]byte(log))
L:
for {
switch l.state {
case CREATE_BUCKET:
err := l.createBucket()
if err != nil {
return err
}
l.state = CREATE_MULTI_PART_UPLOAD
continue
case CREATE_MULTI_PART_UPLOAD:
err := l.createMultiPartUpload()
if err != nil {
return err
}
l.state = PUT_LOG_PARTS
continue
case PUT_LOG_PARTS:
err := l.putLogParts()
if err != nil {
return err
}
break L
}
}
return nil
}