如何在Microsoft Graph PowerShell的Set-MgDriveItemContent中设置冲突行为?
解决Set-MgDriveItemContent设置冲突行为的问题
你可以通过以下两种方式为Set-MgDriveItemContent命令指定@microsoft.graph.conflictBehavior参数:
方法一:使用-QueryParameter传递自定义查询参数
Set-MgDriveItemContent虽未直接暴露冲突行为的专属参数,但可通过通用的-QueryParameter参数传递Graph API所需的查询参数。示例命令如下:
# 设置冲突行为为replace(覆盖现有文件) Set-MgDriveItemContent ` -DriveId "你的文档库Drive ID" ` -DriveItemId "目标文件夹的DriveItem ID" ` -Content (Get-Content "本地文件路径" -Raw -Encoding Byte) ` -QueryParameter @{ "@microsoft.graph.conflictBehavior" = "replace" }
你可根据需求将值替换为fail(文件存在则报错)或rename(文件存在则重命名新文件),该方法在v2.9.0和v2.15.0版本的SDK中均适用。
方法二:直接调用Invoke-MgGraphRequest
若需要更灵活的API调用控制,可绕过封装的Cmdlet,直接使用Invoke-MgGraphRequest调用原生Graph API:
# 设置冲突行为为rename(文件存在时自动重命名) Invoke-MgGraphRequest ` -Method Put ` -Uri "https://graph.microsoft.com/v1.0/drives/你的Drive ID/items/目标文件夹DriveItem ID/content?@microsoft.graph.conflictBehavior=rename" ` -Body (Get-Content "本地文件路径" -Raw -Encoding Byte) ` -ContentType "application/octet-stream"
补充说明
无需预先通过GET请求检查文件是否存在,也不必强制使用上传会话(上传会话主要针对超过4MB的大文件上传场景)。上述两种方法均可直接实现指定冲突行为的需求。
内容的提问来源于stack exchange,提问作者MGDev
相关产品推荐
相关产品推荐

