在任何 Salesforce API 中,您只能通过一个请求获取不超过一个附件。为了确保您没有附件,请先获取 Attachment.Id,然后通过循环获取正文
SELECT Id FROM Attachment WHERE ParentId = '...'
for ...
SELECT Body FROM Attachment WHERE Id = '...'"
A) SOAPAPI (Beatbox):获取附件作为普通的长 Base64 编码字段。
import base64
ret = service.query("SELECT Id, Body FROM Attachment WHERE Id = '...'")
blob = base64.b64decode(ret)[0]['Body'])
该查询应该期望一行,因为如果存在“Body”字段,则输出仅限于一行。
B) If REST使用API(简单的销售队伍 https://github.com/simple-salesforce/simple-salesforce/包)具有相同的查询,值Body
or VersionData
fields 是表单的 URL'/services/data/v40.0/sobjects/Attachment/<object_id>/Body'
可以通过GET请求下载。
C) 获取 Salesforce 附件内容Django 销售队伍 https://stackoverflow.com/a/46052952/448474
对于二进制大对象有用的对象是附件、文档和内容版本。
这些有用的查询允许通过以下方式获取二进制大对象(附件或文档)作为普通长字段SOAPAPI(口技)。这ContentVersion
对象允许存储相同数据的多个版本。Attachment
有一个父对象。Document
没有任何父对象。有用的查询:(阅读上面 API 的限制)
SELECT Id, Body FROM Attachment WHERE ParentId = '...'
SELECT Id, Body FROM Document WHERE ParentId = '...'
SELECT Id, VersionData FROM ContentVersion WHERE ...