You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hi, I'm working on a service that will automatically upload files that a user has requested periodically to their OneDrive. While I've managed to get this working for users with a Microsoft 365 account, I haven't been able to successfully upload a file for users with a personal Microsoft account / to their personal OneDrive.
Does the this SDK support uploading files to a personal OneDrive, and if so how would I do that?
The same technique does not work for a personal OneDrive. With a Microsoft 365 OneDrive account I was only able to upload a file in a two step process, first PUTing the file, and the POSTing the content. With a personal OneDrive account both setting and not setting the content results in an error.
name := "example.txt"
contentType := "text/csv"
data := []byte("Hello,World!")
newFile := models.NewFile()
newFile.SetMimeType(&contentType)
fileItem := models.NewDriveItem()
fileItem.SetName(&name)
fileItem.SetAdditionalData(map[string]interface{}{
"@microsoft.graph.conflictBehavior": "replace",
})
fileItem.SetFile(newFile)
// When trying to upload to a personal OneDrive account, if the content is set the a error is returned -
// Error creating file item: [child] A stream property 'content' has a value in the payload. In OData, stream property must not have a value, it must only use property annotations.
// error: invalidRequest
// error: [child] A stream property 'content' has a value in the payload. In OData, stream property must not have a value, it must only use property annotations.
//
// However, if the content is not set then a different error is returned -
// Error creating file item: Cannot create a file without content
// error: invalidRequest
// error: Cannot create a file without content
// fileItem.SetContent(data)
createdFileItem, err := client.Drives().ByDriveId("aDriveID").Items().
ByDriveItemId("aParentDriveItem").Children().
Post(context.Background(), fileItem, nil)
The text was updated successfully, but these errors were encountered:
Hi, I'm working on a service that will automatically upload files that a user has requested periodically to their OneDrive. While I've managed to get this working for users with a Microsoft 365 account, I haven't been able to successfully upload a file for users with a personal Microsoft account / to their personal OneDrive.
Does the this SDK support uploading files to a personal OneDrive, and if so how would I do that?
A short example of what I have working for a Microsoft 365 account is in this repository - https://github.com/chriswilding/upload-file-to-onedrive.
The same technique does not work for a personal OneDrive. With a Microsoft 365 OneDrive account I was only able to upload a file in a two step process, first PUTing the file, and the POSTing the content. With a personal OneDrive account both setting and not setting the content results in an error.
The text was updated successfully, but these errors were encountered: