Python 如何打印存储在S3存储桶中的文件名?
我试图访问AmazonS3中存储在存储桶中的文件名,但我很难做到这一点Python 如何打印存储在S3存储桶中的文件名?,python,python-3.x,amazon-s3,boto3,Python,Python 3.x,Amazon S3,Boto3,我试图访问AmazonS3中存储在存储桶中的文件名,但我很难做到这一点 import requests import boto3 from boto3.session import Session session= Session(aws_access_key_id="access_key", aws_secret_access_key="secret_key") s3= session.resource('s3') my_bucket=s3.Bucket("my_bucket") for
import requests
import boto3
from boto3.session import Session
session= Session(aws_access_key_id="access_key", aws_secret_access_key="secret_key")
s3= session.resource('s3')
my_bucket=s3.Bucket("my_bucket")
for s3_file in my_bucket.objects.all():
print(list(s3_file.key))
这并不能解决您的
拒绝访问
错误,但值得一提的是,在代码文件中包含访问密钥和密钥被视为安全性差
相反,您可以运行aws configure
命令将凭据存储在配置文件中。然后,您的代码将自动查找凭据:
import boto3
s3 = boto3.resource('s3')
my_bucket = s3.Bucket("my-bucket")
for object in my_bucket.objects.all():
print(object.key)
如果您在AmazonEC2实例上运行代码,那么就更容易了。只需为实例分配一个IAM角色,代码就会自动接收凭据。你说的“困难时期”是什么意思?我遇到了一个拒绝访问的错误。你认为应该允许你访问存储桶的原因是什么?bucket是否属于提供访问密钥和密钥的同一帐户?您可以使用aws s3 ls s3://my bucket命令列出bucket吗?是的,@JohnRotenstein它属于同一个帐户。为IAM用户分配了哪些权限以允许他们访问bucket?是,我知道这种方法,但是如果我想在我的代码文件中包含访问密钥和私钥来尝试它呢?您当然可以在代码文件中包含您的访问密钥和私钥。建议不要这样做,因为您的代码可能存储在其他人可以看到和使用凭据的地方(例如GitHub)。