OneDrive REST API-上载-转换为jpeg的.png文件内容

OneDrive REST API-上载-转换为jpeg的.png文件内容,rest,onedrive,Rest,Onedrive,使用OneDrive REST API上载文件时,某些扩展名为.png的文件的内容会自动转换为JPEG。我能够用两种有文档记录的上传方法重现这个问题。 png文件示例: 有关缩短的请求,请参考: PUT方法 当PUT请求标头中的内容类型设置为application/octet stream时,将返回以下错误: HTTP/1.1 415 Unsupported Media Type Server: Live-API/19.7.925.4009 Microsoft-HTTPAPI/2.0 <

使用OneDrive REST API上载文件时,某些扩展名为.png的文件的内容会自动转换为JPEG。我能够用两种有文档记录的上传方法重现这个问题。 png文件示例:

有关缩短的请求,请参考:

PUT方法

当PUT请求标头中的内容类型设置为application/octet stream时,将返回以下错误:

HTTP/1.1 415 Unsupported Media Type
Server: Live-API/19.7.925.4009 Microsoft-HTTPAPI/2.0
<removed>

{
   "error": {
      "code": "request_body_invalid_media_type", 
      "message": "The Content-Type header 'application/octet-stream' isn't supported."
   }
}
POST方法

其他OneDrive API

Microsoft在onedrive网站和Windows桌面客户端skydrive.exe上使用的API skyapi.onedrive.live.com/API/2没有出现此问题

OneDrive开发人员:


与在PUT请求中返回415错误不同,是否可以支持设置了内容类型:application/octet stream header的请求?在这种情况下,数据应该保持原样,而不进行任何数据转换。谢谢。

这是记录的行为,请参见上传下的第一条注释


如果要禁用转换,可以在查询字符串中设置downsize\u photo\u uploads=false

多谢各位。我一定是忽略了这个查询参数。不幸的是,现在出现了一个新问题:OneDrive报告的文件大小不正确。21 KB PNG在OneDrive网站上显示为38.4 KB PNG,这与REST照片对象的大小参数相对应。为供参考,已在此处创建了新的问题/报告:
HTTP/1.1 415 Unsupported Media Type
Server: Live-API/19.7.925.4009 Microsoft-HTTPAPI/2.0
<removed>

{
   "error": {
      "code": "request_body_invalid_media_type", 
      "message": "The Content-Type header 'application/octet-stream' isn't supported."
   }
}
POST https://apis.live.net/v5.0/folder.<removed>/files HTTP/1.1
Content-Type: multipart/form-data; boundary=735b1931-a2bb-4970-8142-373848528fcb
<removed>
Content-Length: 33767
Host: apis.live.net

--735b1931-a2bb-4970-8142-373848528fcb
Content-Disposition: form-data; name="file"; filename="i2.png"
Content-Type: application/octet-stream

.PNG<removed>
--735b1931-a2bb-4970-8142-373848528fcb--