2017-10-10 28 views
1

v1.0 Microsoft Graph APIを使用してアップロードセッションにファイルをアップロードする際に問題が発生しています。 私の手順:成功 アップロードセッションMicrosoft Graph APIのコンテンツ範囲ヘッダーをフォーマットする方法

  • [ファイル/アップロードセッションを作成します:uploadUrlに成功(私はバイトをアップロードするために戻ってuploadUrlを取得)
  • アップロードバイトを:以下のエラーで失敗

    1. は、アクセストークンを取得します。

      { 
          "error": 
          { 
           "code":"invalidRequest", 
           "message":"The Content-Range header is missing or malformed." 
          } 
      } 
      

      私は次の形式を使用してみましたが、私はまだ同じエラーが表示されます。ここでは

  • は、私が受けていますエラーです。私はここでMircosoft https://developer.microsoft.com/en-us/graph/docs/api-reference/v1.0/api/item_createuploadsession

    からこの記事を、次の午前

    "bytes 0-100/100" 
    "0-100/100" 
    "0-100" 
    

    はuploadUrlへのアップロードがすべてのヘルプははるかに高く評価されたアップロードセッション

    public uploadToSession(file: HTMLInputElement, session: any, fileData: any) { 
        var headers = new Headers(); 
        headers.append('Content-Length', fileData.length); //(ie: "100") 
        headers.append('Content-Range', fileData.range); //(ie: "bytes 0-100/100") 
        this.http.put(session.uploadUrl, { headers }) 
         .subscribe(
          (res: Response) => console.log(res), 
          error => console.log(error) 
         ); 
    } 
    

    の作成からretreived私の機能です!前もって感謝します。

    +0

    このAPIの背後にあるアイデアは、あなたが正しくチャンクを送信しているということですか?したがって、ファイルサイズ全体が1つのチャンクより大きくなること、すなわち 'bytes 0-50/100'の後に' bytes 50-100/100'が続くことが期待されます。 – Fenton

    +0

    これは、APIがチャックの送信を許可するように設計されていることは間違いありませんが、サイズが60 MiB未満であれば、ファイル全体を送信することもできます。一度にファイル全体を送信できないという文書を見たことがありますか?私は、サイズに応じて2つの異なるアップロードメソッドを使用することを避けようとしていますが、それが唯一の方法であればそれもそうです。 –

    +0

    いいえ - 何も見つかりませんでしたが、コードがよく見えるので、発生する可能性のある問題を改革していました – Fenton

    答えて

    2

    Content-Rangeヘッダは、次の形式があります

    Content-Range: bytes <startindex>-<endindex>/<totallength> 
    

    あなたの問題は、インデックス(0系)と長さ(1系)の混合であるように見えます。 100バイトファイルの場合、ヘッダーは次のようになります。

    Content-Range: bytes 0-99/100 
    
    +0

    ありがとう、Brad。その値は文字列であるべきですか? –

    関連する問題