Google云存储根据请求位置修改javascript文件

时间:2018-07-06 17:24:18

标签: google-cloud-platform google-cloud-storage

我正在使用Google Cloud Storage区域存储区来托管我的JavaScript文件。他们以前在全球范围内运行良好,但现在只有从区域ip(南美)访问时它们才能运行,而国际IP会获得经过稍微修改的javascript文件。

存储桶没有版本控制,并且文件被哈希处理,因此仅被上传了一次。

可以通过以下链接访问有问题的文件:https://www.googleapis.com/download/storage/v1/b/hassets/o/all%2FViewer-7315d2224c220a45ad8e.js?generation=1530894418059107&alt=media

通过南美IP(存储桶所在的位置)访问时,它将一次具有以下字符串:closeAfter(500)()

但是在其他地方访问时,此字符串将被修改为:closeAfter(500)(,"gl"),从而破坏了脚本。

这应该发生吗?我有什么办法可以解决它?

1 个答案:

答案 0 :(得分:0)

默认情况下,匿名可读的GCS对象对其具有缓存策略,从而允许Google和其他中介机构将内容缓存长达一个小时。对于匿名可读对象,如果一个对象在过去一个小时内被另一个同名对象覆盖,则一个区域中的用户很可能会看到原始对象,而另一区域中的用户可能会看到较新的对象。

我敢打赌,有人上传了第一个选项,至少下载了一次(将其加载到某个地方的缓存中),然后上传了第二个版本。无论对象是否启用了版本控制,这种情况都会发生。

请注意,如果URL中存在世代号(在您的链接中存在),则不会发生这种情况。这是您看到问题的链接,还是您使用的是“ https://storage.googleapis.com/bucket_name/object_name.js”之类的东西?