如何下载Salesforce中自定义对象所有记录的所有附件?

How to download all attachments of all records of a custom object in Salesforce?

我不熟悉 Salesforce 中的文件处理。我想获取附加到自定义对象所有记录的所有文件。有人可以帮我吗?

Old-school SF 使用了 Attachment 对象,你可以简单地去 SELECT Body, ContentType, Name FROM Attachment WHERE ParentId = '...'.

在 Lightning 中,您的附件很有可能被称为“文件”(实际 API 名称是 ContentDocument / ContentVersion)。检查附件的 ID 是否以 068 或 069 开头。它们没有直接链接到您的记录。相反,中间有 ContentDocumentLink table,用于 cross-share 相同的文件。 (你上传它并浪费数据库 space 一次,然后你可以 cross-link 它在 Chatter 帖子、群组、其他记录中...)

官方ERD isn't great, try to click through it in Setup -> Schema Builder or this answer might help: https://salesforce.stackexchange.com/a/160285/799。有一个示例查询,您可能需要 fine-tune 一点,例如 SELECT ContentDocument.LatestPublishedVersion.VersionData 以获得实际有效负载。

在这里查看关于 ContentVersion 的其他问题。例如 (它是另一种方式,关于上传但应该给你一个好主意)。

您可以使用开源 sfdx-hardis 插件命令导出所有笔记和附件

  • 首先,定义一个文件导出

sfdx hardis:org:configure:files

提示SOQL请求时,可以输入SELECT Id,Name FROM YourCustomObjectName__c

  • 然后,运行 文件导出

sfdx hardis:org:files:export

更多详细信息在此 article

免责声明:我公司作者sfdx-hardis插件