我正在使用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")
,从而破坏了脚本。
这应该发生吗?我有什么办法可以解决它?
答案 0 :(得分:0)
默认情况下,匿名可读的GCS对象对其具有缓存策略,从而允许Google和其他中介机构将内容缓存长达一个小时。对于匿名可读对象,如果一个对象在过去一个小时内被另一个同名对象覆盖,则一个区域中的用户很可能会看到原始对象,而另一区域中的用户可能会看到较新的对象。>
我敢打赌,有人上传了第一个选项,至少下载了一次(将其加载到某个地方的缓存中),然后上传了第二个版本。无论对象是否启用了版本控制,这种情况都会发生。
请注意,如果URL中存在世代号(在您的链接中存在),则不会发生这种情况。这是您看到问题的链接,还是您使用的是“ https://storage.googleapis.com/bucket_name/object_name.js”之类的东西?