問題描述
使用.NET SDK發起RestoreObject請求時出現如下報錯:
The XML you provided was not well-formed or did not validate against our published schema.問題原因
對某個Object發起了RestoreObject請求,但是請求XML中包含該介面不支援的Unknown節點。
問題樣本
以下請求XML中包含Unknown節點,RestoreObject介面不支援該節點導致請求錯誤。
POST /coldarchiveobject?restore HTTP/1.1
Host: cold-archive-bucket.oss-cn-hangzhou.aliyuncs.com
Authorization: AWS qn6q**************:77Dv****************
Date: Tue, 21 Apr 2020 11:09:19 GMT
<RestoreRequest>
<Days>2</Days>
<Unknown></Unknown>
</RestoreRequest>解決方案
在使用 .NET SDK 解凍 OSS 中的檔案時,參數配置需根據儲存類型和 SDK 版本進行正確設定。
使用 C# SDK V1 版本:必須同時設定 request.Days 和 request.Tier 參數。不同儲存類型的配置要求如下:
Archive Storage:設定 request.Tier = null,並根據需要設定 request.Days(指定解凍後保留天數)。
冷Archive Storage或深度冷Archive Storage:需根據業務緊急程度設定 request.Tier(可選值:Expedited、Standard、Bulk),同時指定 request.Days。
推薦使用 C# SDK V2 (預覽版)版本:該版本支援自動適配不同儲存類型的解凍規則。建議優先升級至 C# SDK V2(預覽版) 進行操作。具體解凍檔案樣本請參考GitHub樣本。