Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/302.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 1.7.21中使用bucket.objects.filter(Prefi=myPrefixString)时,我遇到InvalidToken错误_Python_Amazon S3_Boto_Boto3_Botocore - Fatal编程技术网

python:在boto3 1.7.21中使用bucket.objects.filter(Prefi=myPrefixString)时,我遇到InvalidToken错误

python:在boto3 1.7.21中使用bucket.objects.filter(Prefi=myPrefixString)时,我遇到InvalidToken错误,python,amazon-s3,boto,boto3,botocore,Python,Amazon S3,Boto,Boto3,Botocore,我正在尝试从s3存储桶访问对象。Iam使用boto3 1.7.21。首先,我使用 session = boto3.session.Session(aws_access_key_id=aws_access_key_id, aws_secret_access_key=aws_secret_access_key, region_name=region_name) 然后尝试通过过滤器使用 session.resources("s3

我正在尝试从s3存储桶访问对象。Iam使用boto3 1.7.21。首先,我使用

session = boto3.session.Session(aws_access_key_id=aws_access_key_id,
                  aws_secret_access_key=aws_secret_access_key,
                  region_name=region_name)
然后尝试通过过滤器使用

session.resources("s3").Bucket(myBucketName)
.objects.filter(Prefix=myPrefix)
我得到下面的错误

ClientError: An error occurred (InvalidToken) when calling the ListObjects operation: The provided token is malformed or otherwise invalid.
我的开发版本:

  • python-2.7
  • boto3-1.7.21
  • botocore-1.10.35

更好的方法是下载并使用AWS CLI并在本地计算机中运行命令AWS configure以保存访问密钥id秘密访问密钥和默认区域,然后运行下面给出的python脚本:

import boto3

s3 = boto3.resource('s3')
bucket=s3.Bucket('bucket_name')

for obj in bucket.objects.filter(Prefix='Event/'):
    print(obj.key)

如果传递了错误的会话令牌,则会发生此错误。在你的情况下,你没有包括它

session = boto3.session.Session(
   aws_access_key_id=aws_access_key_id,
   aws_secret_access_key=aws_secret_access_key,
   region_name=region_name, 
   aws_session_token=aws_session_token)