我的一些用户正在使用不支持Cache-Control HTTP标头的旧浏览器。因此,我想设置Expires标头,以确保我的内容在可能的情况下被缓存。
我正在使用Java SDK,我发现this question表示在上传时使用ObjectMetadata中的setHeader方法。
这似乎工作正常,但我注意到在JavaDocs中它声明setHeader方法仅供内部使用。从我自己的代码中调用此方法可能会出现任何问题吗?
答案 0 :(得分:1)
这似乎工作正常,但我注意到在JavaDocs中它说明了 setHeader方法仅供内部使用。有没有 从我自己的代码中调用此方法可能产生的问题?
这个有点令人惊讶的问题已经出现了,请看bkirkbri's comment - 这里是my reply:
嗯,我确实没有意识到这种限制,但回想一下 使用Expires:在某个时刻退缩;我可能错了, 我经常使用其他SDK与S3进行交互(例如 C#/ Python,它肯定支持这个)并且可能混合了它 up - 代码本身与其他setXYZHeader()没有区别 目前的方法(见ObjectMetadata.java),所以限制 将基于不可见的副作用,如果有的话。
这似乎仍然适用,即如果您分析代码,则没有任何其他情况可以表示 - 因此,bkirkbri's conclusion似乎正确地总结了事态:
它可能被内部和内部的其他头方法使用 只是因为只有某些标题可行。他们应该添加一个 在ObjectMetadata上设置setExpires方法,因为它是唯一的标头 没有它自己的方法
除此之外,我担心只有AWS SDK for Java团队本身可以提供一个明确的答案:像往常一样,您可能会在相应的AWS forum中提出问题,但是最近他们接受了移动中的问题GitHub repository也可能会为代码相关的问题提供更快更明确的结果。