【发布时间】:2019-11-15 21:34:13
【问题描述】:
玩弄golang parquet 包,发现函数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 的修改版本?例如,如果我想更改默认值。
【问题讨论】:
-
从左到右阅读:函数切片,参数指针指向 s3manager.Uploader。
-
嗨,你能提供一个例子吗?谢谢
标签: amazon-web-services go aws-sdk-go