code: func (svc *S3Accessor) Put(ctx context.Context, keyPath string, object interface{}) error {
  	jsonBytes, jsonBytesErr := json.Marshal(object)
  	if jsonBytesErr != nil {
  		return jsonBytesErr
  	}
  
  	logger, _ := ctx.Value(sparta.ContextKeyLogger).(*logrus.Logger)
  	logger.WithFields(logrus.Fields{
  		"Bytes":   string(jsonBytes),
  		"KeyPath": keyPath}).Debug("Saving S3 object")
  
  	bytesReader := bytes.NewReader(jsonBytes)
  	putObjectInput := &s3.PutObjectInput{
  		Bucket: aws.String(svc.s3BucketName()),
  		Key:    aws.String(keyPath),
  		Body:   bytesReader,
  	}
  	putObjectResponse, putObjectRespErr := svc.
  		s3Svc(ctx).
  		PutObjectWithContext(ctx, putObjectInput)
  
  	logger.WithFields(logrus.Fields{
  		"Error":   putObjectRespErr,
  		"Results": putObjectResponse}).Debug("Save object results")
  
  	return putObjectRespErr
  }
docs: // Put handles saving the item