gpt4 book ai didi

java - 禁用谷歌云存储上的文件缓存(灵活的应用程序引擎java)

转载 作者:行者123 更新时间:2023-11-30 06:36:55 24 4
gpt4 key购买 nike

在灵活的谷歌应用程序引擎上的Java中,如何禁用文件缓存?我不在乎它是否在使用 gsutil 的整个存储桶上禁用,或者在保存或读取单个文件时禁用它们。 (我只是不想缓存任何内容,因为文件经常被替换并使用相同的文件名)。

我存储文件的代码:

  private static Storage storageService;

public static void uploadStream(
String name, InputStream stream, String bucketName)
throws IOException, GeneralSecurityException {

Storage storage = StorageOptions.getDefaultInstance().getService();


Blob blob = storage.create(BlobInfo.newBuilder(bucketName, name).build(),stream);}

此代码可以完美地按预期上传和替换 pdf 文件。当用户在网页上查看 pdf 时,如果最近被替换,他们会看到缓存的副本。需要一个小时才能在网站上查看新版本。

我不确定这是否是我需要编辑存储桶、在 java 中保存文件时设置不缓存或在读取文件时设置不缓存的地方。我的读取文件的代码是:

public ByteArrayOutputStream downloadStream (String bucketName, String filePath)
throws Exception {

Storage storage = getService();

byte [] bytes = storage.readAllBytes(bucketName,filePath);


ByteArrayOutputStream baos = new ByteArrayOutputStream(bytes.length);
baos.write(bytes, 0, bytes.length);


return baos;
}

然后通过 Web servlet 返回该信息。

标准谷歌应用程序引擎也被标记,因为这确实是谷歌云存储问题,我不确定解决方案是否在于gsutil或云控制台,但请注意访问谷歌云存储的java代码灵活和标准之间会有所不同。

最佳答案

如果对象是公开可读的并且 Cache-Control header 允许缓存,则对象是可缓存的。因此,您可以通过更改其中一个/两个来禁用缓存。请参阅有关设置 Cache-Control header 的 gsutil 文档,例如:

https://cloud.google.com/storage/docs/gsutil/addlhelp/WorkingWithObjectMetadata#cache-control

关于java - 禁用谷歌云存储上的文件缓存(灵活的应用程序引擎java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45062256/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com