首页 > 解决方案 > 如何使用包 AWSS3.jl 连接到在 EC2 实例上运行的 S3 存储桶?

问题描述

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

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

特别是我想知道配置连接并随后使用 Julia 的配置的最佳方法是什么。

标签: amazon-web-servicesamazon-s3julia

解决方案


  1. 创建具有 S3 访问权限的 AWS 策略(特别是PutObjectGetObject

  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/


推荐阅读