我通过存储 c# api (Google.Cloud.Storage.V1) 上传到谷歌云存储桶。这些是客户端页面访问的公共文件。问题: 文件以“private,max-age = 0”发送。问题: 我想在通过 api 本身上传文件时或之后设置自定义缓存标头。是否可以通过 c# google storage api 调用发送缓存标头或其他元数据?我也很好奇:既然我没有设置任何缓存头,为什么谷歌存储以 max-age=0 来服务这些文件,而不是根本不发送任何缓存头?
1 回答
慕田峪4524236
TA贡献1875条经验 获得超5个赞
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:
var patch = new Google.Apis.Storage.v1.Data.Object
{
Bucket = bucketId,
Name = objectName,
CacheControl = "public,max-age=7200"
};
client.PatchObject(patch);
如果您没有指定任何内容,恐怕我不知道缓存控制的细节。
- 1 回答
- 0 关注
- 87 浏览
添加回答
举报
0/150
提交
取消