amazon-web-services - 使用 s3 上传多个文件

标签 amazon-web-services go amazon-s3 aws-sdk-go

我想通过 aws golang sdk 将文件上传到我的 s3 存储桶。我有一个监听 POST 请求的网络服务器,我希望接收任何类型的多个文件。

使用 sdk,s3 结构 PutObjectInput 期望 Bodyio.ReadSeeker 类型,我不确定如何提取上传文件的内容,进而满足 io.ReadSeeker 接口(interface)。

images := r.MultipartForm.File

for _, files := range images {
    for _, f := range files {

        # In my handler, I can loop over the files
        # and see the content
        fmt.Println(f.Header)

        _, err = svc.PutObjectWithContext(ctx, &s3.PutObjectInput{
                Bucket: aws.String("bucket"),
                Key:    aws.String("key"),
                Body:   FILE_CONTENT_HERE,
            })
    }
}

最佳答案

使用 FileHeader.Open获取 io.ReadSeeker 的方法。

    f, err := f.Open()
    if err != nil {
       // handle error
    }

    _, err = svc.PutObjectWithContext(ctx, &s3.PutObjectInput{
            Bucket: aws.String("bucket"),
            Key:    aws.String("key"),
            Body:   f,
        })

打开返回 File .此类型满足 io.ReadSeeker界面。

关于amazon-web-services - 使用 s3 上传多个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47719788/

相关文章:

amazon-web-services - 为安装在 AWS EC2 上的 Jenkins 设置 GitHub Webhook

无法使用带点的相对路径加载 Javascript 文件

python - 如何轻松确定 Boto 3 S3 存储桶资源是否存在?

amazon-web-services - 使用 Firebase 和 s3 存储图像

javascript - AWS 从客户端上传文件到 S3

amazon-web-services - AWS 网络负载均衡器会将来自多个客户端的 HTTP 请求复用到同一个 TCP 连接吗?

python-3.x - 由于客户函数错误,Lambda 执行失败,状态为 200

amazon-web-services - 如何从 Terraform data.aws_instance 获取特定标签值

go - 使用嵌入式 core.v1.PodSpec 验证 CRD

go - 读取子进程的 stdout 和 stderr 的竞争条件