带有AWS S3和goamz的Golang中不受支持的协议方案“”

Trying to upload file bytes to S3 AWS, using the goamz/s3 package in Go (lang).

My code is:

var (
    awsAuth aws.Auth
    region aws.Region
    connection s3.S3
    bucket *s3.Bucket
)
func init() {

    // Set up the AWS S3 Connection config.
    awsAuth = aws.Auth{
        AccessKey: os.Getenv("ACCESS_KEY"), // change this to yours
        SecretKey: os.Getenv("SECRET_KEY"),
    }
    fmt.Println("AWS: ", awsAuth)
    region := aws.EUWest    
    connection := s3.New(awsAuth, region)

    bucket = connection.Bucket(os.Getenv("S3_BUCKET")) // change this your bucket name
}
func uploadToS3(filename string, byteArray *[]byte) error {

    var err error
    //should check if file already uploaded, encrypted by this password
    fmt.Printf("[uploadToS3] starting upload of %s
", filename)

    err = bucket.Put(filename, *byteArray, "text/plain; charset=utf-8", s3.PublicRead)
    if err != nil {
        fmt.Printf("[uploadToS3] error uploading: %s
", err)
        return err
    } else {
        fmt.Printf("[uploadToS3] done uploading %s
", filename)    
        return nil
    }

    return nil // redundancy
}

I get the error

[uploadToS3] error uploading: Put /filename: unsupported protocol scheme ""

Reading from here: unsupported protocol scheme while creating ec2 Security group it reckons that its because the region is incorrect, however as you can see I am setting that in the init() function so I don't know what else it could be

Any thoughts greatly appreciated

To anyone who might have the same issue. It is an error you get when the bucket name is not set. Seems stupid, but I was running this inside docker, and had forgot to tell docker what the enviroment variable was that held the bucket name. Therefore when I did echo $S3_BUCKET on my terminal, I got the bucket name, and therefore thought all was good. However I didn't test that inside the docker container. Fool on me.