繁体   English   中英

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

[英]Google Cloud Storage api (c#) - cache header metadata

我通过存储 c# api (Google.Cloud.Storage.V1) 上传到谷歌云存储桶。 这些是客户端页面访问的公共文件。

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

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

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

您可以在调用UploadObject时设置缓存控制,如果您指定一个Object而不仅仅是存储桶名称和对象名称。 下面是一个例子:

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来做到这PatchObject

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM