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

How to upload files and attachments to the sobject record using REST API?

Salesforce 有两种不同的 UI,因此,它有可能以不同方式存储附件。 通过经典 UI 上传了两个文件,它们被标记为 'attachments'。其他文件是通过新 UI 上传的,它们被标记为 'files'。 我想使用 REST API 上传所有这些文件。我找不到合适的文档。有人可以帮我解决这个问题吗?

这并非 100% 正确。在 SF Classic UI 中,您也可以上传文件。 "just" 了解 table 的正确 API 名称,您会在网上找到很多示例。

AttachmentDocumentobject的API名字一模一样,可以在SOAP API definition or in REST API explorer (there was something which you can still see in screenshot in here中查看他们的定义,现在好像down了,也许他们正在将它移动到文档中的另一个区域...)

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

ContentDocument 是一个 header,在 SF link 中有很多地方(想象一下文件在磁盘上只浪费 space 一次,但从多个 cross-linked记录)。它至少可以有 1 个版本,如果您需要更新文档 - 您可以上传新版本,但组织中的所有 links 都不会改变,它们仍然 link 到 header.

那么,如何使用呢?