Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.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
Python boto3会话不工作_Python_Python 3.x_Amazon S3_Boto3 - Fatal编程技术网

Python boto3会话不工作

Python boto3会话不工作,python,python-3.x,amazon-s3,boto3,Python,Python 3.x,Amazon S3,Boto3,我正在使用boto3会话将文件上载到s3。我可以使用~/.aws/credentials将文件上载到s3中,但是如果我尝试创建一个如上所述的会话,我会得到一个禁止的错误。基本上,我无法使用我的凭据上传。代码是: if env == 'qa': credentials = getQaConfig(data) ACCESS_KEY = credentials['AccessKeyId'] SECRET_KEY = credenti

我正在使用
boto3
会话将文件上载到
s3
。我可以使用
~/.aws/credentials
将文件上载到s3中,但是如果我尝试创建一个如上所述的会话,我会得到一个禁止的错误。基本上,我无法使用我的凭据上传。代码是:

        if env == 'qa':
         credentials = getQaConfig(data)
         ACCESS_KEY = credentials['AccessKeyId']
         SECRET_KEY = credentials['SecretAccessKey']
        elif env == 'prod':
         credentials = getProdConfig(data)
         ACCESS_KEY = credentials['AccessKeyId']
         SECRET_KEY = credentials['SecretAccessKey']
       elif env == 'dev':
        credentials = getDevConfig(data)
        ACCESS_KEY = credentials['AccessKeyId']
        SECRET_KEY = credentials['SecretAccessKey']

      s3 = boto.Session(
           aws_access_key_id=ACCESS_KEY,
           aws_secret_access_key=SECRET_KEY
           ).resource('s3')
即使没有从环境中获取访问密钥并直接对其进行硬编码(如下所示),我也会得到一个错误

      s3 = boto.Session(
           aws_access_key_id='my_Actual_key',
           aws_secret_access_key='mey actual_Secret
           ).resource('s3')

使用boto3设置S3客户端的实际方式如下:

client = boto3.client(
's3',
aws_access_key_id=ACCESS_KEY,
aws_secret_access_key=SECRET_KEY,
aws_session_token=SESSION_TOKEN,
)
或者通过会议

session = boto3.Session(
aws_access_key_id=ACCESS_KEY,
aws_secret_access_key=SECRET_KEY,
aws_session_token=SESSION_TOKEN,
)

无法建立会话的一个可能原因可能是您的帐户为AWS设置了SSO(单点登录),并且您需要解析令牌以及剩余的凭据,以公布实际错误。