如何使用 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 名称,您会在网上找到很多示例。
Attachment
和Document
object的API名字一模一样,可以在SOAP API definition or in REST API explorer (there was something which you can still see in screenshot in here中查看他们的定义,现在好像down了,也许他们正在将它移动到文档中的另一个区域...)
文件(包括 "Chatter Files")存储在 ContentDocument
和 ContentVersion
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.
那么,如何使用呢?
- REST API 指南:https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/dome_sobject_insert_update_blob.htm
- 或者 Chatter API 指南(你用 chatter 标记了它,所以你很可能已经在使用它):https://developer.salesforce.com/docs/atlas.en-us.chatterapi.meta/chatterapi/connect_resources_files.htm
- 我在这里的一些回答可能会有所帮助(不要脸的插件)。它们也与上传和读取数据有关,甚至还有一个与数据加载器有关……但您可能会先尝试导出文件,在加载之前熟悉结构?
Salesforce 有两种不同的 UI,因此,它有可能以不同方式存储附件。 通过经典 UI 上传了两个文件,它们被标记为 'attachments'。其他文件是通过新 UI 上传的,它们被标记为 'files'。 我想使用 REST API 上传所有这些文件。我找不到合适的文档。有人可以帮我解决这个问题吗?
这并非 100% 正确。在 SF Classic UI 中,您也可以上传文件。 "just" 了解 table 的正确 API 名称,您会在网上找到很多示例。
Attachment
和Document
object的API名字一模一样,可以在SOAP API definition or in REST API explorer (there was something which you can still see in screenshot in here中查看他们的定义,现在好像down了,也许他们正在将它移动到文档中的另一个区域...)
文件(包括 "Chatter Files")存储在 ContentDocument
和 ContentVersion
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.
那么,如何使用呢?
- REST API 指南:https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/dome_sobject_insert_update_blob.htm
- 或者 Chatter API 指南(你用 chatter 标记了它,所以你很可能已经在使用它):https://developer.salesforce.com/docs/atlas.en-us.chatterapi.meta/chatterapi/connect_resources_files.htm
- 我在这里的一些回答可能会有所帮助(不要脸的插件)。它们也与上传和读取数据有关,甚至还有一个与数据加载器有关……但您可能会先尝试导出文件,在加载之前熟悉结构?