SharePoint Online和OneDrive for Business支持版本控制,可以保留文件的版本历史,方便用户随时查看和恢复以前的版本。但该功能也会占用大量SharePoint Online或OneDrive for Business存储空间。官方删除版本历史的方法无法批量操作,故今天提供一种使用Power Automate来删除SharePoint Online或OneDrive for Business文件版本历史。
第一步:添加“Get files(properties only)”操作,以获取列表中的文件。
第二步:添加“Send an HTTP request to SharePoint”操作:
Method: GET
Uri: _api/web/GetFolderByServerRelativeUrl('Dynamic content of Folder Path')/Files('Dynamic content of File name with extension')/Versions
第三步:“Parse JSON”,将上一个动作的正文放入解析 JSON 动作的内容中,然后点击“使用示例负载”按钮生成 schema 粘贴如下 schema:
{
??? "type": "object",
??? "properties": {
??????? "d": {
??????????? "type": "object",
??????????? "properties": {
??????????????? "results": {
??????????????????? "type": "array",
??????????????????? "items": {
??????????????????????? "type": "object",
??????????????????????? "properties": {
??????????????????????????? "__metadata": {
??????????????????????????????? "type": "object",
??????????????????????????????? "properties": {
??????????????????????????????????? "id": {
??????????????????????????????????????? "type": "string"
??????????????????????????????????? },
??????????????????????????????????? "uri": {
??????????????????????????????????????? "type": "string"
??????????????????????????????????? },
??????????????????????????????????? "type": {
??????????????????????????????????????? "type": "string"
??????????????????????????????????? }
??????????????????????????????? }
??????????????????????????? },
??????????????????????????? "CreatedBy": {
??????????????????????????????? "type": "object",
??????????????????????????????? "properties": {
??????????????????????????????????? "__deferred": {
??????????????????????????????????????? "type": "object",
??????????????????????????????????????? "properties": {
??????????????????????????????????????????? "uri": {
??????????????????????????????????????????????? "type": "string"
??????????????????????????????????????????? }
??????????????????????????????????????? }
??????????????????????????????????? }
??????????????????????????????? }
??????????????????????????? },
??????????????????????????? "CheckInComment": {
??????????????????????????????? "type": "string"
??????????????????????????? },
??????????????????????????? "Created": {
??????????????????????????????? "type": "string"
??????????????????????????? },
??????????????????????????? "ID": {
??????????????????????????????? "type": "integer"
??????????????????????????? },
??????????????????????????? "IsCurrentVersion": {
??????????????????????????????? "type": "boolean"
??????????????????????????? },
??????????????????????????? "Length": {
??????????????????????????????? "type": "string"
??????????????????????????? },
??????????????????????????? "Size": {
??????????????????????????????? "type": "integer"
??????????????????????????? },
??????????????????????????? "Url": {
??????????????????????????????? "type": "string"
??????????????????????????? },
??????????????????????????? "VersionLabel": {
??????????????????????????????? "type": "string"
??????????????????????????? }
??????????????????????? },
??????????????????????? "required": [
??????????????????????????? "__metadata",
??????????????????????????? "CreatedBy",
??????????????????????????? "CheckInComment",
??????????????????????????? "Created",
??????????????????????????? "ID",
??????????????????????????? "IsCurrentVersion",
??????????????????????????? "Length",
??????????????????????????? "Size",
??????????????????????????? "Url",
??????????????????????????? "VersionLabel"
??????????????????????? ]
??????????????????? }
??????????????? }
??????????? }
??????? }
??? }
}
第四步:创建另一个“Send an Http request to SharePoint”:
Method: DELETE
Uri: _api/web/GetFolderByServerRelativeUrl('Dynamic content of Folder Path')/Files('Dynamic content of File name with extension')/Versions(ID from the previous action)