当前位置: 首页 > 知识库问答 >
问题:

Google Cloud Storage api(C#)-缓存头元数据

姜鹏程
2023-03-14

我通过storage C#api(google.cloud.storage.v1)上传到google cloud storage bucket。这些是客户端页面访问的公共文件。

问题:文件发送时带有“private,max-age=0”。

问题:我想在通过api本身上传文件时或之后设置自定义缓存头。可以通过C#google存储api调用发送缓存头或其他元数据吗?

我也很好奇:既然我没有设置任何缓存头,为什么谷歌存储服务这些max-age=0的文件,而不是根本不发送任何缓存头呢?

共有1个答案

陆飞鸿
2023-03-14

如果指定了一个对象而不是只指定bucket名称和对象名称,则可以在调用uploadobject时设置缓存控件。下面是一个例子:

var client = StorageClient.Create();
var obj = new Google.Apis.Storage.v1.Data.Object
{
    Bucket = bucketId,
    Name = objectName,
    CacheControl = "public,max-age=3600"
};
var stream = new MemoryStream(Encoding.UTF8.GetBytes("Hello world"));
client.UploadObject(obj, stream);

事后也可以使用PatchObject:

var patch = new Google.Apis.Storage.v1.Data.Object
{
    Bucket = bucketId,
    Name = objectName,
    CacheControl = "public,max-age=7200"
};
client.PatchObject(patch);

我不知道关于缓存控制的细节,如果你没有指定任何东西,虽然,恐怕。

 类似资料:
  • 我有一个问题与超文本传输协议头-缓存控制:max-age=1234我的源有那个头,但任何方式发送请求和接收304.我需要可能我错过了什么?还有一个,源除了缓存控制: max-age=1234在"响应头"有缓存控制: max-age=0在"请求头",可能是它的影响。 我的一个资源响应标题,示例: > 远程地址:10.6.237.13:443请求请求方式:GET状态码:304未修改

  • 我们已经配置nginx服务器添加缓存控制头到公共和到期时间到1个月。但是当我们从浏览器发出请求时,客户端正在添加缓存控制:无缓存头。正因为如此,它每次都是新鲜下载内容,而不是提供缓存版本。 我怎样才能缓存静态文件? 如果我从终端触发请求,服务器添加的缓存控制标头在响应标头中可见。

  • 数据缓存是指将一些 PHP 变量存储到缓存中,使用时再从缓存中取回。 它也是更高级缓存特性的基础,例如查询缓存 和内容缓存。 如下代码是一个典型的数据缓存使用模式。 其中 $cache 指向缓存组件: // 尝试从缓存中取回 $data $data = $cache->get($key); if ($data === false) { // $data 在缓存中没有找到,则重新计算它

  • setStorageSync 基础库1.3.9开始支持,iOS版本2.1.23,Android版本2.1.38 setStorageSync(string key, any data) ft.setStorage 的同步版本 参数 string key 本地缓存中指定的 key any data 需要存储的内容。只支持原生类型、Date、及能够通过JSON.stringify序列化的对象。 示例代

  • jd.setStorage(OBJECT) 异步接口,将数据存储在本地缓存中指定的 key 中,会覆盖掉原来该 key 对应的内容。 OBJECT 参数说明: 参数 类型 必填 说明 key String 是 本地缓存中的指定的 key data Object/String 是 需要存储的内容 success Function 否 接口调用成功的回调函数 fail Function 否 接口调用失

  • 在nginx中使用add_header指令时,会将该头添加到来自源服务器的响应中。 假设源服务器返回缓存控制公共,最大年龄=60。但在nginx反向代理位置中,您可以设置如下内容: 添加\u头缓存控制公用,最大年龄=10 这到底是做什么的?我可以想到两种不同的情况: 1)Nginx尊重来自源服务器的缓存控制报头,并将内容存储在其缓存中,过期时间为60秒。然后传递带有覆盖标头的响应,导致客户端将资源

  • 在settings解析代码里面涉及到了一个新的对象,叫做MetaClass,MetaClass的作用是保存指定类的元数据,这里的元数据指的是:指定类的可读/可写的属性、方法以及构造器等信息。 // 获取Configuration类的描述对象 MetaClass metaConfig = MetaClass.forClass(Configuration.class, localReflectorFa

  • 我在S3上存储了图像,并使用lambda函数动态调整图像大小。在此过程中,我将添加到调整大小的图像中,并添加一个缓存控件头: 如果已经生成了缩略图,我只需要: null 控制缓存不存在,我想不出来... 当我使发行版中的所有映像无效时,唯一的变化是X-cache的值:第一次加载时的'error from cloudfront'(状态为200,映像加载正常)