Golang函数论证中的函数数组

时间:2019-07-05 09:00:13

标签: amazon-web-services go aws-sdk-go

使用golang实木复合地板包装,遇到了功能s3.NewS3FileWriter,该功能接受以下论点[]func(*s3manager.Uploader)

func NewS3FileWriter(
    ctx context.Context,
    bucket string,
    key string,
    uploaderOptions []func(*s3manager.Uploader),
    cfgs ...*aws.Config,
) (source.ParquetFile, error) {
    if activeS3Session == nil {
        sessLock.Lock()
        if activeS3Session == nil {
            activeS3Session = session.Must(session.NewSession())
        }
        sessLock.Unlock()
    }

    file := &S3File{
        ctx:             ctx,
        client:          s3.New(activeS3Session, cfgs...),
        writeDone:       make(chan error),
        uploaderOptions: uploaderOptions,
        BucketName:      bucket,
        Key:             key,
    }

    return file.Create(key)
}

[]func(*s3manager.Uploader)是什么意思?以及如何传递s3Manager.Uploader的修改版本?例如,如果要更改默认值。

谢谢

1 个答案:

答案 0 :(得分:0)

在调用过程中,uploaderOptions的{​​{1}}自变量必须用函数切片填充。并且每个函数必须具有类型为NewS3FileWriter的参数。

示例:

*s3manager.Uploader