0

我的一些用户正在使用不支持 Cache-Control HTTP 标头的旧浏览器。因此,除了确保尽可能缓存我的内容之外,我还想设置 Expires 标头。

我正在使用 Java SDK,我发现这个问题说在上传时使用 ObjectMetadata 中的 setHeader 方法。

这似乎工作正常,但我注意到在 JavaDocs 中它声明 setHeader 方法仅供内部使用。从我自己的代码中调用此方法可能会出现任何问题吗?

4

1 回答 1

1

这似乎工作正常,但我注意到在 JavaDocs 中它声明 setHeader 方法仅供内部使用。从我自己的代码中调用此方法可能会出现任何问题吗?

这个有点令人惊讶的问题已经再次出现,请参阅bkirkbri 的评论- 这是我的回复

嗯,我确实不知道这个限制,但回想一下曾经使用过 Expires: 在不久前的某个时候;不过我可能是错的,因为我经常使用其他 SDK 与 S3 交互(例如 C#/Python,它们确实支持这一点)并且可能将其混为一谈 - 代码本身与当前的其他 setXYZHeader() 方法没有区别(请参阅ObjectMetadata.java),因此限制将基于不可见的副作用(如果有)。

这似乎仍然成立,即如果您分析代码,则没有任何其他指示 - 因此,bkirkbri 的结论似乎正确地总结了事态:

它可能在内部和内部的其他标头方法中使用,因为只有某些标头才能工作。他们应该在 ObjectMetadata 上添加一个 setExpires 方法,因为它是唯一没有自己方法的标头

除此之外,恐怕只有 AWS SDK for Java 团队本身才能提供明确的答案:像往常一样,您可能会在各自的AWS 论坛中提问,但最近他们也在他们移动的GitHub 存储库中接受了问题,这可能会为此类与代码相关的问题提供更快、更明确的结果。

于 2012-12-10T09:40:33.397 回答