Disposition 属性创建/更新谷歌云存储对象元数据时,它是添加一个新属性而不是更新现有的 Content-Disposition。请参见下图。我的目标是在下载对象时提供不同的名称。当我手动更新 Content-Disposition 时,它按预期工作。我正在使用 .NET 客户端库,下面是代码string fileNameWithExt = "filename.txt"; using (var stream = file.InputStream) { var obj = new Google.Apis.Storage.v1.Data.Object { Bucket = bucketName, Name = fileName, ContentType = "application/octet-stream", Metadata = new Dictionary<string, string> { { "Content-Disposition", $"attachment; filename={fileNameWithExt}" } } }; var gcsObject = storage.UploadObject(obj, stream); var patchObject = new Google.Apis.Storage.v1.Data.Object { Bucket = bucketName, Name = fileName, //ContentType = "text/plain", Metadata = new Dictionary<string, string> { { "Content-Disposition", $"attachment; filename={fileNameWithExt}" } } }; storage.PatchObject(patchObject);
1 回答
繁花不似锦
TA贡献1851条经验 获得超4个赞
GCS 对象具有多种属性,包括它们的名称、它们的内容类型,以及如您所指出的内容处置。但是,它们还有另一个属性:任意用户元数据。这是字符串的键值对列表,可以包含您喜欢的任何内容。
C# 库调用自定义用户元数据键值字典Metadata。通过使用该属性,您的代码将使用“Content-Disposition”键创建自定义用户元数据条目。而是使用ContentDisposition值。像这样的东西:
var patchObject = new Google.Apis.Storage.v1.Data.Object
{
Bucket = bucketName,
Name = fileName,
ContentDisposition = $"attachment; filename={fileNameWithExt}"
}
此外,如果您正在编写新的 C# 代码,我推荐更新且更易于使用的 google-cloud .NET 库:https : //googlecloudplatform.github.io/google-cloud-dotnet/
- 1 回答
- 0 关注
- 171 浏览
添加回答
举报
0/150
提交
取消