如何使用 REST API 将文件和附件上传到对象记录?

Pav*_*hyn 5 api rest salesforce salesforce-chatter salesforce-lightning

Salesforce 有两个不同的 UI,根据它,它可以以不同的方式存储附加文件。两个文件是通过经典 UI 上传的,它们被标记为“附件”。其他文件是通过新用户界面上传的,它们被标记为“文件”。我想使用 REST API 上传所有这些文件。我找不到正确的文档。有人可以帮我解决这个问题吗?

eye*_*eam 5

这并不是100%正确的。在 SF Classic UI 中,您也可以上传文件。“只是”知道表的正确 API 名称,您会在网上找到很多示例。

Attachment并且Document对象具有完全相同的 API 名称,您可以在SOAP API 定义或 REST API 资源管理器中查看它们的定义(您仍然可以在此处的屏幕截图中看到一些内容,现在似乎已关闭,也许他们正在将其移动到另一个文档中的区域...)

文件(包括“Chatter 文件”)存储在ContentDocumentContentVersion对象中。这个名字很出人意料,因为很久以前SF购买了另一家公司的产品,叫做“Salesforce Content”。一开始有点混乱,现在它更好地集成到整个平台中,但仍然潜伏着一些东西,比如文件夹有时在文档中可以称为库,但实际的 API 名称是ContentWorkspace。实体关系图可以提供一点帮助:https://developer.salesforce.com/docs/atlas.en-us.api.meta/api/sforce_api_erd_content.htm

ContentDocument是一个标头,SF 中的许多位置都链接到该标头(想象一下文件仅浪费一次磁盘空间,但从多个记录进行交叉链接)。它至少可以有 1 个版本,如果您需要更新文档 - 您可以上传新版本,但 org 中的所有链接都不会更改,它们仍然会链接到标题。

那么,如何使用呢?