Herunterladen von Benutzerdateien
Eine Liste von Dateien, die nicht heruntergeladen werden können, ist sicherlich eine Enttäuschung für Benutzer, wir müssen also ein Feature zum Herunterladen hinzufügen. Sie könnten denken, dass diese Dateien einfache Hyperlinks haben, aber vergessen Sie nicht, dass Microsoft 365 eine sichere Umgebung ist, so dass der Download gesichert sein muss. Microsoft Graph stellt eine kurzlebige Download-URL bereit, in welche die Sicherheit integriert ist, sie muss jedoch sofort verwendet werden.
Wenn Sie eine Liste von Dateien abrufen, fordert der Code die ID jeder Datei an, anstatt URLs abzurufen, die ungültig wären, bevor ein Benutzer sie auswählen könnte. Die Datei-ID wird in dem Moment gegen einen Download-URL ausgetauscht, wenn der Benutzer den Link auswählt. Hier ist dieser Anruf noch einmal zu Ihrer Information:
const response = await graphClient
.api('/me/drive/root/children')
.select('id,name,folder,package')
.get();
Wenn ein Benutzer einen Dateilink auswählt, wird ein onClick
-Ereignis den Benutzer zur downloadFile()
-Funktion weiterleiten, welche die kurzlebige URL abruft und die Datei sofort herunterlädt.
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);
}
}
Der /me/drive/items/<file ID>
-Aufruf ruft die Metadaten über die spezifische Datei ab. Beachten Sie die select()
-Option, die @microsoft.graph.downloadUrl
anfordert. Die Eigenschaft muss für die kurzlebige Download-URL explizit angefordert werden, da sie nicht standardmäßig zurückgegeben wird.
Der Aufruf window.open()
mit einem Zielwert von _self
weist den Browser an, die Datei herunterzuladen, anstatt zu ihr zu navigieren.