尝试访问head_object时无CredentialError



我有如下代码,它按预期运行:

import boto3
session = boto3.Session(profile_name='default')
s3 = session.resource('s3')
bucketName = 'myBucketName'
bucket = s3.Bucket(bucketName)
for object_summary in bucket.objects.filter(Prefix="MainFolder/"):
s3_cli = boto3.client('s3')
if(object_summary.key[-1]!='/'):
print('FileName: '+object_summary.key)
# print(s3_cli.head_object(Bucket=bucketName,Key=str(object_summary.key)))
else:
s3obj='FolderName: '+object_summary.key
print(s3obj)

并列出了我S3存储桶上MainFolder中的文件和文件夹。然而,当我取消注释第12行时,我会得到以下错误:

NoCredentialsError: Unable to locate credentials

知道我做错了什么吗?

代替:

s3_cli = boto3.client('s3')

您应该使用session加载特定的配置文件:

s3_cli = session.client('s3')

最新更新