2015-11-19 5 views
5

Bitte erlauben Sie mir zu erklären, was ich mache und Wie ich mache.Wie lade ich mit OneDrive REST API eine Datei auf OneDrive hoch?

Was mache ich?

Ich versuche, eine Datei zu laden seines REST API Quelle Microsoft Onedrive mit: one drive api documentation

I Microsoft Onedrive Fragmente sind mit approch tun, um die Datei als 5 GB oder so klein wie 1kb so groß sein kann (hängt vom Benutzer)

Derzeit ich es tue POST-MAN Chrome-Erweiterung mit Apies nennen

Wie mache ich?

  1. generiert Zugriffstoken
  2. Sitzung erstellt und empfangen Hochladen url
  3. Upload-Datei mit PUT-Anfrage unter
  4. gegeben als

Ausgewählte Datei, die ich (Dateigröße hochladen möchten: 729.676.295 Bytes) enter image description here

Header hinzugefügt und gesendet Die Anforderung und an die Anfrage enter image description here Hier ist das Ergebnis enter image description here

es zu sagen, dass die maximale Fragmentgröße 67108864 Bytes so geändert I den Wert von

Content-Length: 67108864 und content-Bereich: Bytes 0-67108863/729676295

aber dann bekomme ich diese Fehlermeldung: erklärt Fragmentlänge die bereitgestellte Anzahl von Bytes nicht enter image description here

Bitte helfen Sie mir passen, um herauszufinden, was soll ich in Content-Length und Content-Bereich passieren.

Vielen Dank für Ihre Aufmerksamkeit.

Antwort

3

Endlich, dank Gott nach 2 Tagen des Kampfes fand ich, was das Problem war.

Es gibt einige Punkte, die Sie im Auge

    halten müssen
  1. Sie haben eine Datei zu teilen, um in gleiche Teile und es irgendwo speichern und jeder von ihnen getrennt auf der gleichen URL laden, die Sie erhalten nach dem Erstellen eine Sitzung.
  2. Content-Length muss die Gesamtzahl der Bytes der Datei sein, die Sie in alle Upload-Anforderungen von Fragmenten hochladen.
  3. Content-Range wird wie: 0- {fragmentLength-1}/{} totalNumberOfBytesOfFile (das gleiche wie Content-Length) und ab dem nächsten Fragment, das das Content-Range wird uploadedBytes {} - {uploadedBytes + nextSetOfBytes-1}/{} totalNumberOfBytesOfFile

Hinweis: der nächste Satz von Bytes sollte so lange wie bei der vorangegangenen sein. Mach dir keine Sorgen, denn das letzte Fragment kann anders sein.

S.: Verwenden Sie nicht den Inhaltsbereich, den Sie nach dem erfolgreichen Hochladen des Fragments erhalten.

2

enter image description here

totalNumberOfBytesOfFile {} nicht gleich wie Content-Length; Content-Length ist Bytes des aktuellen Fragments.

Das Bild ist ein Beispiel für das Hochladen einer 4917-Byte-Datei.

Verwandte Themen