我正在尝试从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.
我的开发版本:
答案 0 :(得分:0)
一种更好的方法是下载并使用 AWS CLI ,然后运行命令 aws configure 保存您的 access_key_id , secret_access_key 和本地计算机中的默认 region ,然后运行以下给出的python脚本:
import boto3
s3 = boto3.resource('s3')
bucket=s3.Bucket('bucket_name')
for obj in bucket.objects.filter(Prefix='Event/'):
print(obj.key)
答案 1 :(得分:0)
如果传递错误的会话令牌,则会发生此错误。就您而言,您没有包括它。
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)