Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 我必须将Session和S3定义为包变量还是在每个api请求中创建实例_Amazon Web Services_Go_Amazon S3 - Fatal编程技术网

Amazon web services 我必须将Session和S3定义为包变量还是在每个api请求中创建实例

Amazon web services 我必须将Session和S3定义为包变量还是在每个api请求中创建实例,amazon-web-services,go,amazon-s3,Amazon Web Services,Go,Amazon S3,我是否必须将会话和S3定义为包变量,或者在每个api请求中创建实例。示例代码如下。非常感谢 var AWSSession *session.Session var S3Client *s3.S3 func InitAws() error { log.Info("InitAws") AWSSession, err := session.NewSession(&aws.Config{ Region: aws.String(&

我是否必须将会话和S3定义为包变量,或者在每个api请求中创建实例。示例代码如下。非常感谢

var AWSSession *session.Session
var S3Client *s3.S3

func InitAws() error {

    log.Info("InitAws")

    AWSSession, err := session.NewSession(&aws.Config{
        Region:      aws.String("XXXX"),
        Credentials: credentials.NewStaticCredentials( "XX","XX",""), //just for test
    })

    if err != nil {
        return err
    }

    log.Info("InitAws S3 Client")
    S3Client = s3.New(AWSSession)

    log.Info("InitAws end")
    return nil
}

委员会:

只要会话未被修改,会话就可以安全地同时使用。如果可能,应该缓存会话,因为创建新会话将在每次创建会话时从环境中加载所有配置值和配置文件。在所有服务客户端之间共享会话值将确保尽可能少地加载配置

创建单个会话并重用它

您是应该将单个会话存储在包级别变量中,还是通过函数参数传递它,这是一个独立的问题,答案是自以为是的。

只要会话未被修改,会话就可以安全地同时使用。如果可能,应该缓存会话,因为创建新会话将在每次创建会话时从环境中加载所有配置值和配置文件。在所有服务客户端之间共享会话值将确保尽可能少地加载配置

创建单个会话并重用它


您是应该将单个会话存储在包级别变量中,还是通过函数参数传递它,这是一个单独的问题,答案是自以为是的。

查看此链接中的概述,如果可能,会话应该缓存并在您的服务客户机中使用。谢谢我应该仔细阅读该文档。请检查此链接中的概述,如果可能,会话应该缓存并在您的服务客户端中使用。谢谢我本应该仔细阅读这份文件的。