为了账号安全,请及时绑定邮箱和手机立即绑定

如何将 aws.WriteAtBuffer 转换为 io.Reader?

如何将 aws.WriteAtBuffer 转换为 io.Reader?

Go
白猪掌柜的 2023-07-31 16:19:48
我需要从 S3 下载文件,然后将相同的文件上传到不同的 S3 存储桶中。到目前为止我有:sess := session.Must(session.NewSession())downloader := s3manager.NewDownloader(sess)buffer := aws.NewWriteAtBuffer([]byte{})n, err := downloader.Download(buffer, &s3.GetObjectInput{    Bucket: aws.String(sourceS3Bucket),    Key:    aws.String(documentKey),})uploader := s3manager.NewUploader(sess)result, err := uploader.Upload(&s3manager.UploadInput{    Bucket: aws.String(targetS3Bucket),    Key:    aws.String(documentKey),    Body:   buffer,})我使用了 aws.WriteAtBuffer,但是,我目前陷入了如何将此缓冲区视为实现 io.Reader 接口的问题,这是上传程序的 Upload 方法所需要的。
查看完整描述

1 回答

?
扬帆大鱼

TA贡献1799条经验 获得超9个赞

使用bytes.NewReader在缓冲区中的字节上创建 io.Reader :

result, err := uploader.Upload(&s3manager.UploadInput{

    Bucket: aws.String(targetS3Bucket),

    Key:    aws.String(documentKey),

    Body:   bytes.NewReader(buffer.Bytes()),

})


查看完整回答
反对 回复 2023-07-31
  • 1 回答
  • 0 关注
  • 135 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号