2017-07-06 170 views
0

似乎有一种方法可以通过将元数据与“expdays”键附加到PutObjectInput来设置上载过期日,但似乎没有任何方法可以获取此元数据从一个象“ListObjects”调用中的对象。 ListObjectOutput返回“Contents”,它是s3.Objects列表,但该对象没有元数据字段,我也没有看到任何其他方式获取它。在golang中获取s3对象过期

回答

2

ListObjects调用返回[]Object作为结果中的实际对象列表,并且Object不包括过期。但是,GetObject返回GetObjectOutput其确实有一个Expiration字段。因此,您可以迭代返回的Object s并获得每个的到期日期,但如果其中有很多日期可能很耗时。

+0

这是一团糟...... – MichaelB

+2

您必须[使用AWS SDK for Go团队](https://github.com/aws/aws-sdk-go/issues)。 – Adrian

+0

没有理由将其与SDK团队合作。 ListObjects的底层S3 API不返回用户元数据或标签。获取此*需要为每个对象提供单独的“HEAD”请求。 (...这就是为什么我使用S3事件通知,Lambda和RDS/MariaDB来创建对象元数据的索引,当对象上传时捕获的...) –