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

use*_*703 5 amazon-s3 amazon-web-services julia

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

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

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

Prz*_*fel 3

  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
Run Code Online (Sandbox Code Playgroud)

如果您对第 1-3 点有任何问题,请参阅以下教程: https: //aws.amazon.com/premiumsupport/knowledge-center/ec2-instance-access-s3-bucket/