問題の説明
.NET SDK を使用して RestoreObject リクエストを送信すると、次のエラーが発生します。
The XML you provided was not well-formed or did not validate against our published schema.原因
このエラーは、RestoreObject リクエストの XML リクエストボディに、RestoreObject 操作でサポートされていない 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 の両方のパラメーターを設定します。必要な設定はストレージクラスによって異なります。
アーカイブストレージ: request.Tier を null に設定します。次に、request.Days を設定して、解凍されたオブジェクトが利用可能な日数を指定します。
コールドアーカイブまたはディープコールドアーカイブ: 必要な解凍速度に基づいて request.Tier を設定します。有効な値は Expedited、Standard、Bulk です。request.Days も指定する必要があります。
C# SDK V2 (プレビュー) を使用する: このバージョンは、さまざまなストレージクラスの解凍ルールに自動的に適応します。C# SDK V2 (プレビュー) にアップグレードしてください。ファイルの解凍方法の例については、「GitHub の例」をご参照ください。