0

우리는 Google 드라이브 또는 하나의 드라이브 또는 드롭 상자 등의 공용 폴더/파일 URL을 붙여 넣는 클라이언트 용 C# 콘솔 베타 버전 앱을 만들고 있습니다. 백 엔드에서는 파일을 검색하고 처리하는 ...클라우드 공용 폴더에서 파일 가져 오기

나는 단지 인증을위한 프롬프트없이 해당 클라우드 파일을 검색하는 방법을 알고 싶다. (주어진 URL이 공개 될 것이므로 ID pw를 요구해서는 안된다.)

모든 전문가의 도움을 받으시겠습니까?

+0

URL이 공개/공유 인 경우 인증에 대해 왜 걱정합니까? – PhillipH

+0

Philliph, 많은 고객은 클라우드 스토리지에 대한 계정이 없습니다. 그들은 우리가 이메일로 보낸 URL 만 가지고 있습니다. 우리는이 프로세스에 대한 계정을 만들지 않거나 많은 클라이언트가 계정을 만들어야하기 때문에 이것을 사용하지 않을 수도 있습니다. – user875123

+0

다시 말해 URL이 공개/공유이면 자격 증명이 필요한 이유는 무엇입니까? Google/Microsoft 클라우드에 공개/공유 된 자료가 없다는 말입니까? 그렇다면 자격 증명없이 이러한 리소스에 액세스 할 수 없습니다. 사용자가 자격 증명을 입력하기를 원하지 않으면 앱에 하드 코딩해야하는 자격 증명을 입력하고 직접 HttpClient 레이어 내부에서 다시 게시를 처리하십시오. – PhillipH

답변

1

OneDrive를 사용하면 "shares" API을 사용하여 인증없이 공유 링크를 검색 할 수 있습니다.

공유 URL을 올바르게 인코딩 한 다음 API 끝점에 전달하면됩니다. 인코딩의 세부 사항은 위의 페이지에 나와 있지만 URL 기반의 base64 인코딩에 불과합니다.

GET https://api.onedrive.com/shares/{encoded_sharing_url}/root/content

API는 파일의 내용을 반환합니다.

편집 : URL이 약간 잘못되었습니다./shares/API는 드라이브 객체처럼 보이는 "공유 루트"를 반환합니다. 실제 공유 파일에 액세스하려면 경로의/content 부분 앞에/root를 추가해야합니다. 위의 내용을 업데이트했습니다.

+0

Ryan, 코드 스 니펫 URL 공유에 대한 +1 감사합니다. 불행히도 오류가 발생하여 문제를 해결할 수 없습니다. - | 확인해 주셔서 감사합니다. – user875123

+0

인코딩 가이드 라인을 따르시겠습니까? https://dev.onedrive.com/shares/shares.htm#encoding-sharing-urls? 그렇지 않으면 빌드하는 데 사용하는 코드를 공유 할 수있는 경우 URL은 무엇이 잘못되었는지 살펴볼 수 있습니다. –

+0

Ryan,이 스레드에서만 코드를 공유했습니다 ... http://stackoverflow.com/q/37622021/4499378 – user875123

관련 문제