如何使用AWSS3.jl包连接到运行在EC2实例上的S3存储桶?

5

我正在尝试在AWS计算集群上使用Julia处理来自Amazon S3存储桶的数据。

如何在Julia中使用AWSS3.jl打开与S3存储桶的连接?

特别是我想知道配置连接的最佳方法,以及随后如何从Julia使用该配置。


有点不靠谱。我感觉 AWS CLI 没有安装,所以你在安装软件包来进行黑客攻击。 - Kermit
1个回答

3
  1. 创建一个带有S3访问权限(尤其是PutObjectGetObject等)的AWS策略。

  2. 创建一个面向EC2的IAM角色,并将第一步中的策略添加到该角色中。

  3. 将IAM角色分配给EC2实例(或在为您的集群创建EC2实例时配置使用实例配置文件)。

  4. 现在您已准备好在Julia中完成工作。以下是一个简单的示例,将任何Julia对象序列化和反序列化到S3存储桶中。

using AWS, AWSS3, Serialization
struct SampleData
  a::Int
  b::String
end

d=SampleData(1,"sss")
aws = global_aws_config(; region="us-east-1")
b = IOBuffer()
serialize(b, d)

s3_put(aws, "your-s3-bucket-name","myfile.bin", b.data)

ddat = s3_get(aws, "your-s3-bucket-name","myfile.bin")
d2 = deserialize(IOBuffer(ddat))

@assert d == d2

如有问题涉及1-3点,请参考此教程:https://aws.amazon.com/premiumsupport/knowledge-center/ec2-instance-access-s3-bucket/

非常感谢, 事实上,对于其他人,我正在使用一些由于某些原因而无法正常工作的函数,例如s3_list_buckets。希望这能帮助其他人。 - user2405703

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接