如何下载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插件
我不熟悉 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插件