1

名前が既存のファイルと競合しているファイルをアップロードした後も、サーバーはHTTPステータスコード201Createdで応答します。応答本文を解析して、それが実際に作成されているかどうかを正確に知る必要がありました。ステータスコードだけで操作結果がわかるはずだと思います。ですから、これが意図した動作なのかどうか疑問に思います。

以下は私が得る応答です

{
   "total_count":1,
   "entries":[
      {
     "type":"error",
     "status":409,
     "code":"item_name_in_use",
     "context_info":{
        "conflicts":[
           {
              "type":"file",
              "id":"2990420477",
              "sequence_id":"0",
              "etag":"1f64ca909178de30bc682a4ca2d14444719cf9a2",
              "name":"Extensions.pdf"
           }
        ]
     },
     "help_url":"http:\/\/developers.box.com\/docs\/#errors",
     "message":"Item with the same name already exists",
     "request_id":"1389504407503c7c1e8183c"
      }
   ]
}
4

1 に答える 1

1

現在、これを200から202に変更中です。今週の後半(または今夜)に、アップロードステータスを202に変更して、アップロードリクエストが受け入れられたことを示します。詳細については、ブログにもう少し投稿します。

基本的なロジックは、アップロードを一括で送信でき、API呼び出しでアップロードステータスの配列(統計?)を返す必要があるというものです。ファイルを1つだけアップロードすると、1の配列が取得され、成功したかどうかを確認するために配列を掘り下げる必要があります。ファイルのグループをアップロードする場合は、アレイを掘り下げて各ファイルのステータスを確認します。

あなたは尋ねるかもしれません:ファイルが1つしかないときにステータスを折りたたんでみませんか?シングルアップロードとバルクアップロードを処理するには、2つの異なるコードパスを実装する必要があり、どちらの方法でもアップロードを処理するには、コードを1回だけ記述する方が簡単だと考えています。

お役に立てば幸いです。エラーコードを200から202に切り替えた後、予期しない動作が発生した場合はお知らせください。

于 2012-08-28T21:13:27.377 に答える