Microsoft Graph - OneDrive API - 在下载之前转换为jpg

时间:2018-05-30 17:03:19

标签: c# microsoft-graph onedrive

我试图访问两个OneDrive项目。第一个是.docx,第二个是.tif。我希望在下载之前将这些转换为.jpg

当我运行内容请求时...

// gets access to the service
GraphServiceClient graphServiceClient = await GetGraphServiceClient();

// get the item
DriveItem item = await graphServiceClient
    .Drive
    .Root
    .ItemWithPath("xxx")
    .Request()
    .GetAsync();

// set up query params
List<Option> options = new List<Option>();
options.Add(new QueryOption("format", "jpg"));

// get content stream for item, converted to .jpg format
item.Content = await graphServiceClient
    .Drive
    .Root
    .ItemWithPath("xxx")
    .Content.Request(options)
    .GetAsync();

这会引发Unknown Error服务例外。

我认为这可能是一个格式不正确的请求,但我可以将QueryOption格式更改为pdf,并按照您的预期返回。

Here is the documentation for converting prior to download, showing that these formats are both supported to convert to jpg.

有谁知道这里可能出现什么问题,为什么我无法检索jpg但可以检索pdf?

1 个答案:

答案 0 :(得分:1)

Microsoft Graph v1.0仅支持converting to pdf。转换为其他格式的功能仅由the Beta endpoint支持。

/v1.0支持

  • format=pdf

/beta支持

  • format=pdf
  • format=html
  • format=glb
  • format=jpg

不幸的是,OneDrive documentation并没有区分生产 beta 功能。因此,我不建议将其作为主要来源。就像这样容易被绊倒。

要转换为jpg,您需要使用Beta端点,但将BaseUrl属性设置为"https://graph.microsoft.com/beta"。请确保为此方案执行,而不是全局。 Beta端点对于生产来说不够稳定,因此它应该仅用于开发/测试,并且“ 没有其他方式”场景。