問題の説明
アクセスするオブジェクトが存在しません。
原因
オブジェクトにアクセスするためにGetObjectリクエストを開始しましたが、オブジェクトが存在しないか、オブジェクトの指定されたバージョンが存在しません。 開始したリクエストの種類に関係なく、アクセスするオブジェクトが存在しない場合、エラーが返されます。 たとえば、CopyObjectリクエストを開始しても、x-oss-copy-sourceフィールドで指定されたオブジェクトが存在しない場合、エラーも返されます。
次のいずれかの条件が満たされると、オブジェクトは存在しません。
オブジェクトのアップロードに失敗しました。
オブジェクトはライフサイクルルールに基づいて削除されます。
オブジェクトは、OSSコンソールで許可されたユーザーによって、OSSクライアントを使用して、またはAPI操作を呼び出すことによって削除されます。
クロスリージョンレプリケーション (CRR) は、オブジェクトが格納されているバケットに対して設定されます。 ソースバケットまたはターゲットバケット内の同じ名前のオブジェクトに対して実行される削除操作は、指定されたオブジェクトに同期されます。
例
次のリクエストを開始しました。
PUT /xyz.txt HTTP/1.1
ホスト: destbucketname.oss-cn-hangzhou.aliyuncs.com
日付: GMT日付
権限付与: SignatureValue
x-oss-copy-source: /examplebucket/abc.txt examplebucketバケットにabc.txtオブジェクトが存在しない場合、サーバーはエラーを返します。
ソリューション
指定されたオブジェクトが存在するかどうかを確認します。
HeadObject操作を呼び出して、指定されたオブジェクトまたは指定されたバージョンのオブジェクトが存在するかどうかを確認できます。 HTTPステータスコード404が返された場合、オブジェクトまたは指定されたバージョンのオブジェクトは存在しません。
オブジェクトが格納されているバケットのバージョン管理が有効になっていて、リクエストでVersionIDパラメーターを指定した場合は、VersionIDパラメーターで指定されたオブジェクトのバージョンが存在することを確認してください。 ListObjectVersionsまたはGetBucketVersionsを呼び出して、オブジェクトのすべてのバージョンIDを取得できます。
より多くのソリューション
指定したオブジェクトの名前が命名規則に準拠していることを確認してください。 オブジェクトの名前は1 ~ 1,023文字で、UTF-8でエンコードされている必要があります。 名前を、スラッシュ (/) またはバックスラッシュ (\) で始めることはできません。
バケットに設定されているライフサイクルルールを確認し、ルールに基づいてオブジェクトが削除されていないことを確認します。 詳細については、「最終変更時刻に基づくライフサイクルルール」をご参照ください。
オブジェクトが別の承認済みユーザーによって削除されないようにしてください。
バケットに設定されているCRRルールを確認し、CRRルールに基づいてオブジェクトが削除されていないことを確認します。 詳細については、「CRR」をご参照ください。