我有一个EC2实例和一个S3存储桶位于不同的地区。该存储桶中包含一些由我的EC2实例经常使用的文件。
我想要以编程方式在我的EC2实例上下载这些文件(使用Python)。
有没有办法做到这一点?
有没有办法做到这一点?
有很多种方法可以在Python中实现这个目标。
Boto有S3模块可以实现此操作。 http://boto.readthedocs.org/en/latest/ref/s3.html
您也可以使用Python的requests库通过HTTP下载文件。
AWS Cli还提供了一种从Shell下载文件的选项:
aws s3 cp s3://bucket/folder/file.name file.name
我在 Minio 工作,它是一个开源的、使用 golang 编写的 S3 兼容对象存储。
你可以使用 minio-py 客户端库,它是开源的,并与 AWS S3 兼容。下面是一个简单的示例:get_object.py
from minio import Minio
from minio.error import ResponseError
client = Minio('s3.amazonaws.com',
access_key='YOUR-ACCESSKEYID',
secret_key='YOUR-SECRETACCESSKEY')
# Get a full object
try:
data = client.get_object('my-bucketname', 'my-objectname')
with open('my-testfile', 'wb') as file_data:
for d in data:
file_data.write(d)
except ResponseError as err:
print(err)
$ mc mirror s3/mybucket localfolder
ARM从https://dl.minio.io/client/mc/release/linux-arm/mc
$ chmod 755 mc $ ./mc --help
添加您的S3凭据
$ ./mc config host add mys3 https://s3.amazonaws.com BKIKJAA5BMMU2RHO6IBB V7f1CwQqAcwo80UEIJEjc5gVQUSSx5ohQ9GSrr12
注意:用你自己的访问密钥和秘密密钥替换。
补充 @joeButler 上面所说的...
您的实例需要使用API访问S3时获得权限。因此,您需要创建IAM角色和实例配置文件。当实例被创建时,它需要分配实例配置文件。请参阅本指南第183页(底部标注为“使用IAM角色授予Amazon EC2实例上运行的应用程序权限”的主题),了解步骤和程序。
如需更多信息,请参见AWS IAM用户指南第183页。