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 上传多部分文件会损坏文件并增加文件大小
使用 REST API 上传到 Azure Blob 存储时,Zip 档案损坏
youtube-upload 和 google youtube api - 更深入地控制上传过程
使用 Google API 发送邮件时出错 - “'原始' RFC822 有效负载消息字符串或通过 /upload/* URL 上传消息”