【问题标题】:Search Files in AWS S3 by LastModified通过 LastModified 在 AWS S3 中搜索文件
【发布时间】:2020-08-06 23:57:28
【问题描述】:

我想根据文件创建时间(或 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())
            }
    }
}

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

【问题讨论】:

  • 你有没有尝试过?您能否展示您尝试过的内容以及遇到的问题?对第 3 方资源/教程/等的请求与 Stack Overflow 无关。
  • @Adrian 用示例代码修改了上面的代码。
  • @user3445024 显示您尝试按上次修改和遇到的任何问题进行过滤。

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


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

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

  3. 使用 LastModified 字段。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-28
    • 2014-01-20
    • 2012-03-14
    • 2020-01-26
    • 1970-01-01
    • 1970-01-01
    • 2018-07-26
    • 1970-01-01
    相关资源
    最近更新 更多