Dateiverwaltung in SharePoint
Die SharePoint API Dateiverwaltung über den Endpunkt /web/files ermöglicht das gezielte Hochladen, Aktualisieren und Löschen von Dateien innerhalb einer SharePoint-Dokumentbibliothek. Unterstützt werden typische HTTP-Methoden wie POST, MERGE und DELETE zur REST-basierten Verwaltung von Dateien.
Du kannst Dateien abrufen, neue Dateien hochladen, bestehende Dateien löschen oder sogar den Inhalt von Dateien direkt aktualisieren. Das bedeutet konkret: Du holst dir den Dateinamen, den Pfad, die Dateigröße oder das Erstellungsdatum einfach per REST. Du kannst Dateien automatisch hochladen, umbenennen, überschreiben oder löschen – genau so, wie es dein Prozess verlangt.
Typische Einsatzszenarien? Du baust Flows, die automatisch neue Dateien in den passenden Ordner hochladen, etwa für neue Projektberichte oder Protokolle. Oder deine Power App ermöglicht es dem Nutzer, Dateien direkt in SharePoint hochzuladen oder zu löschen – und das ohne großen Aufwand. Auch automatische Datei-Updates sind möglich, etwa wenn generierte PDF-Dokumente regelmäßig aktualisiert werden müssen. Selbst Self-Service-Lösungen kannst du umsetzen, bei denen die Nutzer Dateien eigenständig verwalten, ohne SharePoint überhaupt zu öffnen.
Kurz gesagt: Mit der SharePoint REST API steuerst du die komplette Dateiverwaltung vollautomatisch und flexibel – ganz ohne Umwege. Und wenn du das einmal ausprobiert hast, wirst du sehen, wie einfach und mächtig diese Möglichkeiten sind.
/web/GetFileByServerRelativeUrl({path})/CheckOut()
POST
Mit diesem SharePoint REST API-Endpunkt kannst du eine Datei auschecken. Das bedeutet, dass andere Nutzer sie nicht bearbeiten können, während du Änderungen vornimmst. Du verwendest den POST-Request auf /web/GetFileByServerRelativeUrl({path})/CheckOut(). Ersetze {path} durch den relativen Pfad zur Datei. Ideal, wenn du sicherstellen willst, dass deine Änderungen nicht überschrieben werden.
Power Apps |
'HTTPwithMicrosoftEntraID(preauthorized)'.InvokeHttp(
"POST",
With(
{
hostname: "contoso.sharepoint.com",
'server-relative-path': "sites/Marketing",
serverrelativeUrl: "Library/Folder",
fileName: "EmptyJSON.json"
},
$"https://{hostname}/{'server-relative-path'}/_api/web/GetFileByServerRelativeUrl('/{'server-relative-path'}/{serverrelativeUrl}/{fileName}')/CheckOut()"
),
{
headers: Table(
{
key: "Accept",
value: "application/json;odata=verbose"
},
{
key: "X-RequestDigest",
value: 'HTTPwithMicrosoftEntraID(preauthorized)'.InvokeHttp(
"POST",
With(
{
hostname: "contoso.sharepoint.com",
'server-relative-path': "sites/Marketing"
},
$"https://{hostname}/{'server-relative-path'}/_api/contextinfo"
),
{
body: JSON(Blank()),
headers: Table(
{
key: "accept",
value: "application/json;odata=verbose"
}
)
}
).FormDigestValue
}
)
}
)
/web/GetFileByServerRelativeUrl({path})/CheckIn()
POST
Über die SharePoint REST API kannst du eine Datei ganz einfach einchecken, sobald du mit deinen Änderungen fertig bist. Dabei stehen dir zwei optionale Parameter zur Verfügung, mit denen du den Check-in individuell steuern kannst.
Mit comment hinterlässt du eine Versionsnotiz, zum Beispiel was du an der Datei geändert hast oder warum du sie eincheckst. Das sorgt für mehr Transparenz im Versionsverlauf.
Der zweite Parameter heißt checkintype. Damit entscheidest du, wie die Datei eingecheckt wird:
- 0 steht für eine Entwurfs-Version („Minor Version“)
- 1 für eine Hauptversion („Major Version“), wenn du die Datei veröffentlichen möchtest
- 2 überschreibt einfach die aktuelle Version ohne eine neue zu erstellen.
So behältst du beim Einchecken volle Kontrolle über den Versionsverlauf deiner Dateien.
Power Apps |
'HTTPwithMicrosoftEntraID(preauthorized)'.InvokeHttp(
"POST",
With(
{
hostname: "contoso.sharepoint.com",
'server-relative-path': "sites/Marketing",
serverrelativeUrl: "Library/Folder",
fileName: "EmptyJSON.json"
},
$"https://{hostname}/{'server-relative-path'}/_api/web/GetFileByServerRelativeUrl('/{'server-relative-path'}/{serverrelativeUrl}/{fileName}')/CheckIn(comment='Comment',checkintype=0)"
),
{
headers: Table(
{
key: "Accept",
value: "application/json;odata=verbose"
},
{
key: "X-RequestDigest",
value: 'HTTPwithMicrosoftEntraID(preauthorized)'.InvokeHttp(
"POST",
With(
{
hostname: "contoso.sharepoint.com",
'server-relative-path': "sites/Marketing"
},
$"https://{hostname}/{'server-relative-path'}/_api/contextinfo"
),
{
body: JSON(Blank()),
headers: Table(
{
key: "accept",
value: "application/json;odata=verbose"
}
)
}
).FormDigestValue
}
)
}
)
/web/GetFolderByServerRelativeUrl({path})/Files
GET
Mit dem SharePoint REST API Endpunkt GET _api/web/GetFolderByServerRelativeUrl(‚pfad‘)/Files kannst du alle Dateien innerhalb eines bestimmten SharePoint-Ordners abrufen. Du gibst einfach den Server-Relativen Pfad zum gewünschten Ordner an. Die Antwort enthält eine JSON-Liste mit allen Dateien im Ordner, inklusive Name, URL, Größe und anderen Metadaten. Ideal, wenn du gezielt Dateien aus SharePoint-Ordnern anzeigen oder weiterverarbeiten möchtest, zum Beispiel für Datei-Übersichten oder Download-Links. Dieser Endpunkt eignet sich perfekt für jede Lösung, die auf SharePoint-Dokumente zugreift!
Power Apps |
'HTTPwithMicrosoftEntraID(preauthorized)'.InvokeHttp(
"GET",
With(
{
hostname: "contoso.sharepoint.com",
'server-relative-path': "sites/Marketing",
serverrelativeUrl: "Library/Folder"
},
$"https://{hostname}/{'server-relative-path'}/_api/web/getFolderByServerRelativeUrl('{serverrelativeUrl}')/Files"
),
{
headers: Table(
{
key: "accept",
value: "application/json;odata=verbose"
},
{
key: "content-type",
value: "application/json"
}
)
}
)
DELETE
Mit diesem SharePoint REST API-Endpunkt kannst du alle Dateien in einem bestimmten Ordner löschen. Du verwendest dafür den DELETE-Request und gibst den relativen Pfad zum Ordner an. Das ist ideal, wenn du schnell den kompletten Inhalt eines Ordners leeren möchtest, zum Beispiel für Aufräumarbeiten oder automatische Bereinigungen.
Power Apps |
With(
{
_hostname: "contoso.sharepoint.com",
'_server-relative-path': "sites/Marketing",
_serverrelativeUrl: "Library/Folder",
_fileName: "EmptyJSON.json"
},
'HTTPwithMicrosoftEntraID(preauthorized)'.InvokeHttp(
"POST",
With(
{
hostname: _hostname,
'server-relative-path': '_server-relative-path',
serverrelativeUrl: _serverrelativeUrl,
fileName: _fileName
},
$"https://{hostname}/{'server-relative-path'}/_api/web/getFolderByServerRelativeUrl('{serverrelativeUrl}')/Files('{fileName}')"
),
{
headers: Table(
{
key: "IF-MATCH",
value: 'HTTPwithMicrosoftEntraID(preauthorized)'.InvokeHttp(
"GET",
With(
{
hostname: _hostname,
'server-relative-path': '_server-relative-path',
serverrelativeUrl: _serverrelativeUrl,
fileName: _fileName
},
$"https://{hostname}/{'server-relative-path'}/_api/web/getFolderByServerRelativeUrl('{serverrelativeUrl}')/Files('{fileName}')?$select=ETag"
),
{
headers: Table(
{
key: "accept",
value: "application/json;odata=verbose"
},
{
key: "content-type",
value: "application/json"
}
)
}
).d.ETag
},
{
key: "X-HTTP-Method",
value: "DELETE"
},
{
key: "X-RequestDigest",
value: 'HTTPwithMicrosoftEntraID(preauthorized)'.InvokeHttp(
"POST",
With(
{
hostname: _hostname,
'server-relative-path': '_server-relative-path'
},
$"https://{hostname}/{'server-relative-path'}/_api/contextinfo"
),
{
body: JSON(Blank()),
headers: Table(
{
key: "accept",
value: "application/json;odata=verbose"
}
)
}
).FormDigestValue
}
)
}
)
)
/web/GetFolderByServerRelativeUrl({path})/Files/add()
POST
Mit diesem SharePoint REST API-Endpunkt kannst du eine neue Datei in einen Ordner hochladen. Du verwendest dafür den POST-Request und gibst den Ordnerpfad an. Im Request-Body überträgst du den Dateiinhalt. Ideal, um automatisiert neue Dateien in SharePoint hochzuladen, zum Beispiel für Berichte oder Protokolle.
Power Apps |
'HTTPwithMicrosoftEntraID(preauthorized)'.InvokeHttp(
"POST",
With(
{
hostname: "contoso.sharepoint.com",
'server-relative-path': "sites/Marketing",
serverrelativeUrl: "Library/Folder"
},
$"https://{hostname}/{'server-relative-path'}/_api/web/getFolderByServerRelativeUrl('{serverrelativeUrl}')/Files/add(url='EmptyJSON.json',overwrite=true)"
),
{
body: JSON({},JSONFormat.IncludeBinaryData),
headers: Table(
{
key: "accept",
value: "application/json;odata=verbose"
},
{
key: "content-type",
value: "application/json"
}
)
}
)
/web/GetFileByServerRelativeUrl({path})/$value
PUT
Mit diesem SharePoint REST API-Endpunkt kannst du den Inhalt einer Datei direkt überschreiben. Du nutzt dafür einen PUT-Request und gibst den neuen Inhalt der Datei im Request-Body mit. Der {path} steht dabei für den relativen Pfad zur Datei. Das ist ideal, wenn du eine Datei schnell ersetzen möchtest, zum Beispiel bei automatisierten Prozessen oder Updates.
Power Apps |
With(
{
postBody: JSON(
{key: GUID(), id: 1},
JSONFormat.Compact
)
},
'HTTPwithMicrosoftEntraID(preauthorized)'.InvokeHttp(
"POST",
With(
{
hostname: "contoso.sharepoint.com",
'server-relative-path': "sites/Marketing",
serverrelativeUrl: "Library/Folder",
fileName: "EmptyJSON.json"
},
$"https://{hostname}/{'server-relative-path'}/_api/web/GetFileByServerRelativeUrl('/{'server-relative-path'}/{serverrelativeUrl}/{fileName}')/$value"
),
{
body: postBody,
headers: Table(
{
key: "X-HTTP-Method",
value: "PUT"
},
{
key: "accept",
value: "application/json"
},
{
key: "content-type",
value: "application/json"
},
{
key: "X-RequestDigest",
value: 'HTTPwithMicrosoftEntraID(preauthorized)'.InvokeHttp(
"POST",
With(
{
hostname: "contoso.sharepoint.com",
'server-relative-path': "sites/Marketing",
},
$"https://{hostname}/{'server-relative-path'}/_api/contextinfo"
),
{
body: JSON(Blank()),
headers: Table(
{
key: "accept",
value: "application/json;odata=verbose"
}
)
}
).FormDigestValue
}
)
}
)
)