2017-07-06 174 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來創建對象元數據的索引,當對象上傳時捕獲的...) –