登录
首页 >  Golang >  Go问答

按 LastModified 搜索 AWS S3 中的文件

来源:stackoverflow

时间:2024-03-16 17:12:26 327浏览 收藏

在 Go 中搜索 AWS S3 中的文件时,开发者需要根据文件的创建时间(或 lastmodified)时间进行筛选。虽然在 Python 中可以使用 boto3 分页器实现此功能,但对于 Go 来说,需要采用不同的方法。通过调用 ListObjectsV2 并检查每个对象的 LastModified 字段,可以轻松实现基于时间的文件搜索。

问题内容

我想根据 go 中的文件创建时间(或 lastmodified)时间在 aws s3 中搜索文件。我知道在 python 中使用 boto3 分页器也有同样的效果,它提供了提供查询字符串的选项,但希望在 go 中实现同样的效果。

任何建议或 go-lang 中的任何示例将不胜感激?

我试图列出所有文件的示例代码:

for s.NextContinuationToken != ""  { 

        maxFileRead := 15

        bucket := "XXX-XXX-test"

        // To check if previous result  was truncated
        if s.IsTruncated {
            fileList, err = s.session.ListObjectsV2(&s3.ListObjectsV2Input{
                Bucket:            aws.String(bucket),
                MaxKeys:           aws.Int64(maxFileRead),
                ContinuationToken: &s.NextContinuationToken,
            })
        } else {
            fileList, err = s.session.ListObjectsV2(&s3.ListObjectsV2Input{
                Bucket:      aws.String(bucket),
                MaxKeys:     aws.Int64(maxFileRead),
            })
        }

        s.IsTruncated = *fileList.IsTruncated

        if s.IsTruncated {
            s.NextContinuationToken = *fileList.NextContinuationToken
        } else {
            s.NextContinuationToken = ""
        }

        if err != nil {
            if aerr, ok := err.(awserr.Error); ok {
                switch aerr.Code() {
                case s3.ErrCodeNoSuchBucket:
                    fmt.Println(s3.ErrCodeNoSuchBucket, aerr.Error())
                default:
                    fmt.Println(aerr.Error())
                }
            } else {
                // Print the error, cast err to awserr.Error to get the Code and
                // Message from an error.
                fmt.Println(err.Error())
            }
    }
}

现在我想修改搜索以仅列出在特定时间之后创建的文件。


解决方案


  1. 在每个存储桶上调用 ListObjectsV2 (https://docs.aws.amazon.com/sdk-for-go/api/service/s3/#S3.ListObjectsV2)。

  2. 返回的 Contents 属性是有关每个存储桶对象的元数据列表。

  3. 使用 LastModified 字段。

理论要掌握,实操不能落!以上关于《按 LastModified 搜索 AWS S3 中的文件》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>