Python boto3从ec2上传文件到S3

2024-09-30 06:23:03 发布

您现在位置:Python中文网/ 问答频道 /正文

如果我想从我的“mac”上传一个文件到S3,我可以使用

import boto3
s3 = boto3.resource('s3', region_name="us-west-1")
s3.meta.client.upload_file('/User/gantao/amz.jpg', 'gantao_created', 'amz.jpg')

但是

有没有办法从EC2实例上传一个文件到S3(不要使用SSH到EC2)?在


Tags: 文件nameimports3macboto3ec2region
1条回答
网友
1楼 · 发布于 2024-09-30 06:23:03

简短的回答是“是”

较长的答案是,为了将文件从EC2实例上载到S3,部署的EC2实例必须具有对S3的put_object的正确权限。在

您可以通过在Python代码中配置boto客户机来实现这一点,也可以创建一个具有该权限的IAM角色并将其分配给EC2实例。在

更安全的方法是分配IAM角色,因为它不要求您在源代码管理中的代码或文件中拥有凭据。在

  1. 使用AWS控制台创建一个IAM角色,该角色具有将对象“放入”问题S3存储桶的权限。在
  2. 将IAM角色分配给EC2实例。在

要创建IAM角色,请执行以下操作:

https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html

要将IAM角色添加到EC2实例,请执行以下操作:

https://aws.amazon.com/blogs/security/easily-replace-or-attach-an-iam-role-to-an-existing-ec2-instance-by-using-the-ec2-console/

相关问题 更多 >

    热门问题