列出最新的s3文件

时间:2018-10-17 16:24:23

标签: amazon-web-services go amazon-s3

我正在处理一个Lambda,该Lambda需要列出S3存储桶中的对象,并基于* item.Key文件构建URL。我很快要解决的问题是,该存储桶很快将包含1000多个项目。

当前,我正在使用for仅返回包含特定项目的最后一个文件。密钥:

resp, err := s3Client.ListObjects(&s3.ListObjectsInput{Bucket: aws.String(bucket)})
if err != nil {
    fmt.Printf("Unable to list items in bucket %q, %v", bucket, err)
}

for _, item := range resp.Contents {
    if strings.Contains(*item.Key, "/output.txt") {
        lastItem = *item
    }
}
s := fmt.Sprintf("https://s3.%s.amazonaws.com/%s/%s", region, bucket, *lastItem.Key)
fmt.Println(s)

我的理解是,一旦存储桶中的物品超过1000件,那么每次运行Lambda时,都会返回第1000件物品。

默认情况下,存储桶中的项按最早的顺序返回,最好的方式是按最新的顺序列出项,并在第一个项之后停下for。这可能吗?

如果没有,还有其他人解决过类似的问题吗?

0 个答案:

没有答案