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

Golang AWS S3 批量对象创建

Golang AWS S3 批量对象创建

Go
一只甜甜圈 2023-07-26 16:35:35
目前为止,以下代码满足了我的需要,但我觉得有更好的“批处理”方法可以实现。serv := s3.New(session.New(s3h.Config))for _, i1 := range []string{"1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "a", "b", "c", "d", "e", "f"} {    for _, i2 := range []string{"1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "a", "b", "c", "d", "e", "f"} {        req := &s3.PutObjectInput{            Bucket: aws.String(S3_BUCKET),            Key:    aws.String(i1 + i2 + "/"),        }        serv.PutObject(req)    }}有什么指点吗?
查看完整描述

1 回答

?
Cats萌萌

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

S3 中没有“文件夹”这样的东西。从简单的高层来看,S3 是一个大型键/值存储。列表操作支持查找以某个前缀开头并且可以在已知分隔符(例如/)处停止的键子集,使其看起来像具有类似文件系统的语义。

只需将一个对象放入/a/b/c/d看起来像是创建了文件夹的对象abc它只是用该键创建了一个对象。控制台中使用的列表操作以 at/作为分隔符,因此它提供了类似文件夹的视图。

您无法将多个 S3 对象放入单个操作中。每一项都必须作为单独的操作上传。使用 Go,我建议您可以有一个通道,放置所需的所有上传内容,并让多个并发工作人员处理这些内容以提高性能。您需要进行一些调整才能找到最佳数量。如果还没有一个用于此目的的库,我不会感到惊讶,因为这将是一个非常常见的 S3 用例。


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

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信