func()

in transcodelauncher/copier.go [25:55]


func (c *Copier) DoCopy(ctx context.Context, sourceBucket string, sourceKey string, destBucket string, destKey string, public bool) error {
	headReq := &s3.HeadObjectInput{
		Bucket: aws.String(sourceBucket),
		Key:    aws.String(sourceKey),
	}

	headResponse, err := c.client.HeadObject(ctx, headReq)
	if err != nil {
		return err
	}

	acl := types.ObjectCannedACLPrivate
	if public {
		acl = types.ObjectCannedACLPublicRead
	}

	log.Printf("Copying from s3://%s/%s to s3://%s/%s with %s ACL", sourceBucket, sourceKey, destBucket, destKey, acl)

	copyReq := &s3.CopyObjectInput{
		Bucket:      aws.String(destBucket),
		CopySource:  aws.String(fmt.Sprintf("%s/%s", sourceBucket, sourceKey)),
		Key:         aws.String(destKey),
		ACL:         acl,
		ContentType: headResponse.ContentType,
	}
	_, err = c.client.CopyObject(ctx, copyReq)
	if err != nil {
		return err
	}
	return nil
}