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
}