作为一名系统管理员,我希望从我的组织中获取由不同用户上传的所有文件。为了实现我的目标,我使用了对GET /services/data/v48.0/query/?q=SELECT+Id+FROM+ContentDocument+USING+SCOPE+Everything的请求。但是这里有一个问题:当用户删除他的文件时,我想使用系统管理令牌上传该文件,但是有可能更改它的所有者(返回到删除该文件的用户)。有人能帮我解决这个问题吗?
发布于 2020-04-28 20:22:23
这有点违背直觉,但要上传一个文件,你需要上传ContentVersion记录。如果父查找(ContentDocumentId)字段为空-它将默默地为您创建父ContentDocument。
上传的例子可以在这里找到:blob.htm
(我已经为你回答过了,不是吗?:)
因此,唯一的区别是您希望设置OwnerId,也可能将CreatedById设置为该用户。只要所有者是活动用户,就可以始终设置Owner。“创建”、“最后修改由”是审计字段,通常不可编辑。如果所有者是不活动的,或者你真的想设置“创建”-你可以。但是您只有一次尝试,审计字段只能在insert上设置。在此之后,每个更新都由SF管理。如果您需要更多信息,请检查帮助。
现在..。这并不总是必要的。好的,您将重新创建该文件,但是指向它的所有链接(来自其他记录、聊天帖子、库)都将丢失。它在ContentDOcumentLink中,如果您删除文档,它们就会层叠删除。您可能没有重新创建所有链接的信息或权限。
您的第一道防线可能是检查是否可以从回收站恢复文件。它不能在纯REST中完成,但是您可以使用SOAP或编写一个Apex服务来尝试为您做到这一点。有关提示,请参见https://salesforce.stackexchange.com/questions/117370/how-can-a-record-be-undeleted-using-the-rest-api。
https://stackoverflow.com/questions/61462588
复制相似问题