Onedrive Upload API 上传损坏的文件或图像

Posted

技术标签:

【中文标题】Onedrive Upload API 上传损坏的文件或图像【英文标题】:Onedrive Upload API uploads corrupt file or Image 【发布时间】:2019-11-06 05:03:04 【问题描述】:

我正在使用 Onedrive Rest API 将文件上传到我的 Onedrive 帐户。下面是提到的上传文件的 Microsoft 文档链接。

https://docs.microsoft.com/en-us/onedrive/developer/rest-api/api/driveitem_createuploadsession?view=odsp-graph-online

每当我使用上述 API 时,文件都会上传到我的帐户,但文件会损坏。

下面提到的是我的请求对象。


method: "PUT",
url: Upload Url,
processData: false,
headers: 
     "Authorization": <access_token> 
     "Content-Disposition": 'form-data; name="metadata"',
     "Content-Type": "application/json; charset=UTF-8",
     "Content-Transfer-Encoding": "8bit"
    ,
formData: 
file: 
        value: fs.createReadStream("Smile.png"),
        options:
          
            filename: "Smile.png,
            contentType: null
          
       
      

文件已上传到正确的文件夹中,但已损坏,我无法在我的 Onedrive 帐户中查看它。 有人可以帮我解决这个问题吗?

【问题讨论】:

您找到解决方案了吗?我也面临同样的问题。 你解决了吗?我也是同样的问题。 我也有同样的问题。请给我们解决方案 【参考方案1】:

问题在于如何在正文中传递数据。我有同样的问题,并通过直接传递图像缓冲区(在你的情况下 fs.createReadStream("Smile.png") 作为正文(没有任何大括号 )

我的代码:

    const config = 
        headers:  Authorization: `Bearer $token`,
        
    ;

    const bodyParameters = imageBuffer;
    await axios.put("https://graph.microsoft.com/v1.0/drives/drive-id/items/item-id:/filename:/content",bodyParameters,config)

【讨论】:

以上是关于Onedrive Upload API 上传损坏的文件或图像的主要内容,如果未能解决你的问题,请参考以下文章

通过 REST API 上传多部分文件会损坏文件并增加文件大小

如何解决onedrive不能上传office文档?

使用 REST API 上传到 Azure Blob 存储时,Zip 档案损坏

youtube-upload 和 google youtube api - 更深入地控制上传过程

使用 Google API 发送邮件时出错 - “'原始' RFC822 有效负载消息字符串或通过 /upload/* URL 上传消息”

使用 NodeJS 的 Slack API (files.upload)