2016-11-02 2 views
1

Grpah API를 사용하여 파일을 다운로드하려고했습니다. Microsoft Graph 다운로드 파일 콘텐츠가 반환됩니다. 404

API 브라우저 테스트

, 요청 다음 https://graph.microsoft.io/en-us/graph-explorer#

란은

https://graph.microsoft.com/v1.0/me/drive/root/children

그리고 파일의 항목 중 하나에 대한

, 내가 얻을 수 있었다, 파일/폴더 항목 정보의 목록을 가지고 아이템 정보.

https://graph.microsoft.com/beta/me/drive/items/_an_item_id

그러나 다음 반환 무엇이 증상의 원인이 될 것이다 (404)

https://graph.microsoft.com/beta/me/drive/items/_an_item_id/content

HTTP?

+0

'/ content' 요청 자체가'404'입니까, 아니면'302'를'404'를 반환 한 URL로 리디렉션 했습니까? – Brad

+0

감사합니다. @Brad, 예, 302가 먼저 반환 된 다음 404가 반환됩니다. 발견 된 위치는 파일 항목에 대한 "@ microsoft.graph.downloadUrl"정보와 정확히 같습니다. – Locke

+0

@Brad, 그래프 탐색기가 리디렉션을 지원하지 않기 때문에 그렇습니까? 필자는 Azure에 등록 된 데몬 모드 인증 앱에 Auth-Code를 인증했습니다. 'Bearer'HTTP 헤더가 포함 된 '다운로드 URL'에 파일을 다운로드하려고 시도했지만 404가 표시됩니다. 어떻게 링크에서 파일을 다운로드합니까? – Locke

답변

1

https://graph.microsoft.com/beta/me/drive/items/<itemid>/content을 통해 Graph Explorer을 통해 요청을 수행하는 것은 지원되지 않습니다.

그라스 탐색기를 통해 https://graph.microsoft.com/beta/me/drive/items/<itemid>/content 끝점으로 보낸 요청은 preflight request으로 실행됩니다. 서버는 302-Redirect으로 응답하지만 CORS behavior으로 인해 미리 필터링 된 요청에는 리디렉션이 허용되지 않습니다.

https://graph.microsoft.com/beta/me/drive/items/<itemId> 

반환 자원을 제기 할 실제 링크가 포함 @microsoft.graph.downloadUrl 주석 : 여기

는 파일

에게 다음 드라이브 항목 자원 요청을 다운로드하는 방법에 대한 해결 방법입니다.

일단 드라이브 항목 리소스가 검색되면 @microsoft.graph.downloadUrl에서 URL을 요청하는 다른 GET 요청을 수행하여 실제 파일을 반환하십시오.

+0

감사합니다. 이상하지만, https://azure.microsoft에서 작성된 'Daemon or Server Application'유형으로 accesstoken을 사용하면 다운로드 요청에 대해 404가 반환됩니다. 하지만 다음 인증 흐름의 Acces 토큰을 사용하면 콘텐츠 데이터를 제공합니다. https://dev.onedrive.com/auth/aad_oauth.htm 후자는 사용자 로그인이 필요하며 도메인의 글로벌 관리자 사용자로 로그인합니다. 전자는 데몬이기 때문에 사용자 로그인이 필요 없습니다. AccessToken 형식이 파일 다운로드 요청의 동작에 영향을 줍니까? – Locke

+0

@Locke 'App-only'토큰을 사용하여 파일을 검색하는 것과 동일한 문제 (404)가 있습니다. 사용자 개입없이 파일을 다운로드 할 수 있었습니까? –

+0

@ MartinoBordin 나는 두려워합니다. 인증 수준이 낮아 인증 수준이 낮기 때문에 콘텐츠를 다운로드하는 것과 같은 일을 할 수 없다고 생각합니다. – Locke

관련 문제