如何打印S3存储桶中存储的文件的名称?

时间:2019-05-23 07:58:18

标签: python python-3.x amazon-s3 boto3

我正在尝试访问存储在Amazon S3中存储桶中的文件的名称,但是我很难这么做。

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))

1 个答案:

答案 0 :(得分:0)

这不能解决您的Access Denied错误,但是值得一提的是,在代码文件中包含访问密钥和秘密密钥被认为安全性较差。

相反,您可以运行AWS Command-Line Interface (CLI) aws configure命令将凭据存储在配置文件中。然后,您的代码将自动找到凭据:

import boto3

s3 = boto3.resource('s3')
my_bucket = s3.Bucket("my-bucket")

for object in my_bucket.objects.all():
    print(object.key)

如果您在Amazon EC2实例上运行代码,那么它甚至更加容易。只需为实例分配一个IAM角色,代码就会自动接收凭据。