我有如下代码,它按预期运行:
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')