func NewBucket(svc *S3, name string) *Bucket {
	bucketName := svc.prefix + name
	return &Bucket{
		service:        svc,
		name:           name,
		nameWithPrefix: bucketName,
		endpoint:       svc.endpoint,
		expireSecond:   defaultExpireSecond,
	}
}
NewBucket returns initialized *Bucket.
package s3
import (
	"bytes"
	"fmt"
	"io"
	"sync"
	"time"
	"github.com/aws/aws-sdk-go/aws"
	SDK "github.com/aws/aws-sdk-go/service/s3"
	"github.com/evalphobia/aws-sdk-go-wrapper/private/pointers"
)
const (
	ACLAuthenticatedRead = "authenticated-read"
	ACLPrivate           = "private"
	ACLPublicRead        = "public-read"
	ACLPublicReadWrite   = "public-read-write"
)
const (
	defaultExpireSecond = 180
)
type Bucket struct {
	service *S3
	name           string
	nameWithPrefix string
	endpoint       string
	expireSecond   int
	putSpoolMu sync.Mutex
	putSpool   []*SDK.PutObjectInput
}