2017-05-15 6 views
0

Ich verwende den Beispielcode von "OneDriveApiBrowser" als Basis für das Hinzufügen von Speichern zu einem Laufwerk Unterstützung für meine App. Dies macht Gebrauch von Microsoft.Graph, ich kann kleine Dateien hochladen, aber größere Dateien (10Mb) werden nicht hochgeladen und geben einen Fehler "maximale Anforderungslänge überschritten". Ich bekomme den gleichen Fehler in meinen beiden App und den Beispielcode mit der folgenden Codezeile:"Maximale Anforderungslänge überschritten" Beim Hochladen einer Datei auf Onedrive

DriveItem uploadedItem = await graphClient.Drive.Root.ItemWithPath(drivePath).Content.Request().PutAsync<DriveItem>(newStream); 

Gibt es eine Möglichkeit, die maximale Größe der Datei zu erhöhen, die hochgeladen werden können? Wenn das so ist, wie?

Antwort

1

Graph akzeptiert nur kleine Dateien mit PUT-to-Content, also sollten Sie in creating an upload session suchen. Da Sie das Graph SDK verwenden, würde ich this test case as a guide verwenden.

Hier einige Code auf Vollständigkeit - es wird nicht direkt kompilieren, aber es sollte Ihnen die Schritte sehen beteiligt: ​​

var uploadSession = await graphClient.Drive.Root.ItemWithPath("filename.txt").CreateUploadSession().Request().PostAsync(); 

var maxChunkSize = 320 * 1024; // 320 KB - Change this to your chunk size. 5MB is the default. 

var provider = new ChunkedUploadProvider(uploadSession, graphClient, inputStream, maxChunkSize); 

// Setup the chunk request necessities 
var chunkRequests = provider.GetUploadChunkRequests(); 
var readBuffer = new byte[maxChunkSize]; 
var trackedExceptions = new List<Exception>(); 

DriveItem itemResult = null; 

//upload the chunks 
foreach (var request in chunkRequests) 
{ 
    var result = await provider.GetChunkRequestResponseAsync(request, readBuffer, trackedExceptions); 

    if (result.UploadSucceeded) 
    { 
     itemResult = result.ItemResponse; 
    } 
} 
+0

Sie Brad danken, die mein Problem löst. –

Verwandte Themen