사용자 파일 다운로드
다운로드가 불가능한 파일 목록은 사용자를 실망시킬 수 있으므로 다운로드 기능을 추가해야 합니다. 이러한 파일에는 간단한 하이퍼링크가 있다고 생각할 수 있지만 Microsoft 365는 안전한 환경이므로 다운로드를 보호해야 합니다. Microsoft Graph는 보안이 기본 제공되는 일시적인 다운로드 URL을 제공하지만 이는 즉시 사용되어야 합니다.
파일 목록을 검색할 때 사용자가 파일을 선택하기 전에 잘못된 URL을 검색하는 대신, 코드에서 각 파일의 ID를 요청합니다. 사용자가 링크를 선택하는 즉시 파일 ID가 다운로드 URL로 교환됩니다. 다음은 참조용으로 다시 호출한 내용입니다.
const response = await graphClient
.api('/me/drive/root/children')
.select('id,name,folder,package')
.get();
사용자가 파일 링크를 선택하면 onClick
이벤트는 일시적인 URL을 검색하고 파일을 즉시 다운로드하는 downloadFile()
함수로 사용자를 보냅니다.
async function downloadFile(file) {
try {
const response = await graphClient
.api(`/me/drive/items/${file.id}`)
.select('@microsoft.graph.downloadUrl')
.get();
const downloadUrl = response["@microsoft.graph.downloadUrl"];
window.open(downloadUrl, "_self");
} catch (error) {
console.error(error);
}
}
/me/drive/items/<file ID>
호출은 지정된 파일에 대한 메타데이터를 검색합니다.
select()
옵션이 요청하는 @microsoft.graph.downloadUrl
을 확인합니다. 이 속성은 기본적으로 반환되지 않으므로 일시적인 다운로드 URL에 대해 명시적으로 요청해야 합니다.
window.open()
호출은 대상이 _self
인 브라우저에서 파일을 탐색하는 대신 다운로드를 하도록 지시합니다.