gpt4 book ai didi

python - Amazon S3 boto3 如何遍历存储桶中的对象?

转载 作者:行者123 更新时间:2023-12-04 10:20:35 28 4
gpt4 key购买 nike

在 Flask 应用程序中,我试图遍历 S3 存储桶中的对象并尝试打印键/文件名,但 my_bucket.objects.all() 仅返回存储桶中的第一个对象.它不会返回所有对象。输出是 [001.pdf] 而不是 [001, 002, 003, 004, 005]

from flask import Flask, jsonify, Response, request
from flask_cors import CORS, cross_origin
from config import S3_BUCKET, S3_ACCESS_KEY, S3_SECRET_ACCESS_KEY

import boto3
import csv
import re


s3 = boto3.client(
's3',
aws_access_key_id=S3_ACCESS_KEY,
aws_secret_access_key=S3_SECRET_ACCESS_KEY
)

app = Flask(__name__)
CORS(app, supports_credentials=True)


@app.route('/')
def health():
return jsonify({"message": "app is working"})


@app.route('/files')
def list_of_files():
s3_resource = boto3.resource('s3')
my_bucket = s3_resource.Bucket(S3_BUCKET)
summaries = my_bucket.objects.all()
files = []
for file in summaries:
# this prints the bucket object
print("Object: {}".format(summaries))
files.append(file.key)
# file.key is supposed to return the names of the list of objects
# print(file.key)
return jsonify({"files":"{}".format(file.key)})




if __name__ == "__main__":
app.run()

最佳答案

过早返回会退出循环。

def list_of_files():
s3_resource = boto3.resource('s3')
my_bucket = s3_resource.Bucket(S3_BUCKET)
summaries = my_bucket.objects.all()
files = []
for file in summaries:
files.append(file.key)
return jsonify({"files": files})

关于python - Amazon S3 boto3 如何遍历存储桶中的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60873153/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com