go - 在 go 中实现 io.WriterAt 的缓冲区

标签 go aws-sdk

我正在使用 aws-sdk 从 s3 存储桶下载文件。 S3 下载功能需要实现 io.WriterAt 但是 bytes.Buffer 没有实现它。现在我正在创建一个实现 io.WriterAt 的文件,但我想要内存中的一些东西。

最佳答案

对于涉及 AWS 开发工具包的案例,请使用 aws.WriteAtBuffer将 S3 对象下载到内存中。

requestInput := s3.GetObjectInput{
    Bucket: aws.String(bucket),
    Key:    aws.String(key),
}

buf := aws.NewWriteAtBuffer([]byte{})
downloader.Download(buf, &requestInput)

fmt.Printf("Downloaded %v bytes", len(buf.Bytes()))

关于go - 在 go 中实现 io.WriterAt 的缓冲区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46019484/

相关文章:

postgresql - pgx lib中的命名准备语句,它是如何工作的?

node.js - serverless-s3-local 插件和 @aws-sdk/client-s3 使用 PutObjectCommand 返回错误

java - 如何使用亚马逊资源名称 (ARN) 作为标识符来查找亚马逊资源?

php - AWS PHP SDK 筛选 Aws\Result 对象

go - 什么会导致 malloc 忽略交换空间?

go - 特拉维斯 CI + 去 : creating a specific build flow for different OS

generics - Go(语言)通用数字类型/接口(interface)

dictionary - 修改后的 slice 元素无法通过 map 访问。我究竟做错了什么?

javascript - 有没有办法用 aws-sdk 获取已删除的 s3 对象的先前版本?

java - ObjectMapper 通过 API 网关破坏 AWS Lambda