使用AWSSDK从S3 GetObject检索StorageClass

时间:2016-05-10 14:25:36

标签: c# amazon-s3 aws-sdk

我们正在评估"不经常访问"存储选项。我想知道在检索对象时对象是存储在STANDARD还是STANDARD_IA中,但是GetObjectResponse对象中的StorageClass是null。有什么方法可以表明我想要在响应中填充吗? 对于我们来说,如果一个对象请求它一次就将它移动到STANDARD是有意义的,因为它们可能会再触摸它几次。

我确实注意到我可以从ListObjects中获取它,但如果我能在请求时得到它,我宁愿这样做。

1 个答案:

答案 0 :(得分:0)

我不熟悉SDK,因为我直接使用REST API ...但是,REST API是SDK使用的接口,因此它是一个相当安全的假设,即响应中的空存储类将等同于STANDARD,因为在这种情况下,API不会为存储类返回任何内容。

  

x-amz-storage-class

     

提供对象的存储类信息。 Amazon S3会为除标准存储类对象之外的所有对象返回此标头。

     

http://nshipster.com/nssortdescriptor/

如果这是一个不正确的假设,那么检查x-amz-storage-class:响应头的HTTP响应头(我假设SDK可访问)应该得到答案,尽管这个头完全没有STANDARD个对象。

此响应标头也应该可以从HEAD请求'响应中访问,而HEAD将(我假设)是一个名为getObjectMetadata的方法。

请注意,从STANDARD_IA切换对象会有一个小小的惩罚 - 您需要支付检索费用,因为此操作实际上是一个读取,然后是写入,将数据从一个后备存储移动到另一个后备存储S3,如果对象在更改其类别时在IA中的时间少于30天,则您需要支付至少30天的IA存储空间。