作为一个系统管理员,我想从我的组织中获取所有由不同用户上传的文件.为了实现我的目标,我使用请求到 GET /services/data/v48.0/query/?q=SELECT+Id+FROM+ContentDocument+USING+SCOPE+Everything
. 但这里有一个问题:当用户删除他的文件时,我想用系统管理员令牌上传该文件,但可以改变其所有者(回到删除该文件的用户)。谁能帮我解决这样的问题?
这有点违反直觉,但要上传一个文件,你需要上传 ContentVersion
记录。如果父级查找(ContentDocumentId
)字段将为空白--它将默默地创建父级的 ContentDocument
为您提供。
上传的例子可以在这里找到。https:/developer.salesforce.comdocsatlas.en-us.api_rest.metaapi_restdome_sobject_insert_update_blob.htm。
(我已经为你回答过了,不是吗?))
所以,唯一的区别是,你想把它设置为 OwnerId
,也可能是 CreatedById
作为该用户。只要所有者是一个活跃的用户,你就可以设置所有者总是。"创建者"、"最后修改者 "是审计字段,通常不可编辑。如果所有者是不活跃的,或者你真的想设置 "创建者"--你可以。但你只有一次机会,审计字段只能在插入时设置。之后的每次更新都是由SF管理的。检查 帮忙 如果你需要更多信息
现在......这并不总是需要的。好吧,你会重新创建文件,但所有指向它的链接(从其他记录,从聊天帖,图书馆)都会丢失。它在 ContentDOcumentLink
如果你删除了文件 - 他们级联删除。你可能没有信息或权限来重新创建所有的链接。
你的第一道防线可能是检查文件是否可以从回收站恢复。这在纯粹的REST API中是做不到的,但是你可以使用SF SOAP API或者写一个Apex服务来为你做这件事。请看 https:/salesforce.stackexchange.comquestions117370如何使用rest-api删除一个记录? 的提示。