烧瓶-Elastic Beanstalk读取S3桶

时间:2020-07-01 19:25:42

标签: flask amazon-s3 amazon-elastic-beanstalk

我在弹性beantalk上安装了flask应用程序,并创建了一个S3存储桶来存储一些文件。在本地运行应用程序时,我可以从S3存储桶中读取所有目录和文件。但是,当我将应用程序部署到beantalk时,无法访问S3存储桶中的文件。

from flask import Flask, render_template
import os
import boto3
from config import S3_BUCKET, S3_KEY, S3_SECRET

application = Flask(__name__)
app = application

s3_resource = boto3.resource(
   "s3",
   aws_access_key_id=S3_KEY,
   aws_secret_access_key=S3_SECRET
)

@app.route('/s3')
def view_s3():

    s3_resource = boto3.resource('s3')
    my_bucket = s3_resource.Bucket(S3_BUCKET)
    summaries = my_bucket.objects.all()

    return render_template('mys3stuff.html', bucket_info = my_bucket, files = summaries)


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

这是我的本地人 app ran locally

这是AWS上的错误 http://flaskaws.eba-ihkipjpz.us-east-1.elasticbeanstalk.com/s3

app ran on AWS

我确实将S3存储桶更改为公共,然后它起作用了,但是我想将其限制在IAM或安全组/角色中。只是不确定正确的方法。

0 个答案:

没有答案