func (c *CloudFrontRWStore) PutSD(hash string, blob stream.Blob) error {
	return c.s3.PutSD(hash, blob)
}
PutSD stores the sd blob on S3
package store
import (
	"time"
	"github.com/lbryio/reflector.go/shared"
	"github.com/lbryio/lbry.go/v2/stream"
)
type CloudFrontRWStore struct {
	cf *ITTTStore
	s3 *S3Store
}
func NewCloudFrontRWStore(cf *ITTTStore, s3 *S3Store) *CloudFrontRWStore {
	if cf == nil || s3 == nil {
		panic("both stores must be set")
	}
	return &CloudFrontRWStore{cf: cf, s3: s3}
}
const nameCloudFrontRW = "cloudfront_rw"
func (c *CloudFrontRWStore) Name() string { return nameCloudFrontRW }
func (c *CloudFrontRWStore) Has(hash string) (bool, error) {
	return c.cf.Has(hash)
}
func (c *CloudFrontRWStore) Get(hash string) (stream.Blob, shared.BlobTrace, error) {
	start := time.Now()
	blob, trace, err := c.cf.Get(hash)
	return blob, trace.Stack(time.Since(start), c.Name()), err
}
func (c *CloudFrontRWStore) Put(hash string, blob stream.Blob) error {
	return c.s3.Put(hash, blob)
}