Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 获取异常:在AWS EB中调用PutObject操作:拒绝访问时发生错误(AccessDenied)_Python_Amazon S3_Boto3 - Fatal编程技术网

Python 获取异常:在AWS EB中调用PutObject操作:拒绝访问时发生错误(AccessDenied)

Python 获取异常:在AWS EB中调用PutObject操作:拒绝访问时发生错误(AccessDenied),python,amazon-s3,boto3,Python,Amazon S3,Boto3,我不熟悉烧瓶和蟒蛇。我正在尝试在AWS S3存储桶中上载文件。虽然这在我的本地应用程序中运行良好,但在部署到Elastic Beanstalk上后尝试执行相同操作时,我会遇到以下异常 botocore.exceptions.ClientError:调用PutObject操作时发生错误(AccessDenied):拒绝访问 app.py @app.route('/snap/ingredient', methods=['POST']) def findIngredient(): s3 = b

我不熟悉烧瓶和蟒蛇。我正在尝试在AWS S3存储桶中上载文件。虽然这在我的本地应用程序中运行良好,但在部署到Elastic Beanstalk上后尝试执行相同操作时,我会遇到以下异常

botocore.exceptions.ClientError:调用PutObject操作时发生错误(AccessDenied):拒绝访问

app.py

@app.route('/snap/ingredient', methods=['POST'])
def findIngredient():
    s3 = boto3.resource('s3')
    response = s3.Bucket('<bucket-name>').put_object(Key="image.jpeg", Body=request.files['myFile'], ACL='public-read')
    print(response.key)
    return response
@app.route('/snap/component',methods=['POST'])
def FindingCredit():
s3=boto3.resource('s3')
response=s3.Bucket(“”).put_对象(Key=“image.jpeg”,Body=request.files['myFile'],ACL='public-read')
打印(response.key)
返回响应

我不确定我是否遗漏了什么。我的Bucket访问是公共的

您需要使用具有bucket访问权限的IAM实例配置文件。Elastic Beanstalk使用的默认值不是。IAM政策中有大量政策。我该怎么处理它们呢。有没有办法将策略附加到EB/EC2实例?您需要的所有信息都在我链接的文档中。特别是“向默认实例配置文件添加权限”可能是一个好的开始。谢谢。。“AmazonS3FullAccess”必须附上此政策。非常感谢!!!很高兴它对你有用。考虑只创建具有必需权限的策略,而不是S3FulfAccess。