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 關注
- 197 瀏覽
添加回答
舉報
0/150
提交
取消