首页 > 解决方案 > 如何将大文件从 Salesforce 上传到第三方?

问题描述

我可以使用 HTTP 请求从 Salesforce 向 AWS s3 存储桶发送最大 4.5 MB 的文件。我们如何使用 HTTP 请求从 Salesforce 发送 50 MB 的文件?

标签: salesforcesalesforce-lightning

解决方案


您需要反转流程。Apex 有 6 MB RAM 限制(如果您使用异步 Apex,则为 12 MB,如果是入站电子邮件处理程序,则为 36 MB)。50 MB * 133%(二进制有效负载的 base64 编码)= 66.5 MB,远远超出了限制。

向其他系统发送一些通知(自定义标注?平台事件?),使其登录并使用标准 API 提取文件,而无需调用自定义代码并担心限制。在消息中,您可以向他们发送 REST API 下载 URL ( {instance.my.salesforce.com}/services/data/v50.0/sobjects/ContentVersion/068.../VersionData),如果他们在 REST API 中访问它,他们将获得二进制有效负载作为响应。如果他们更愿意使用 base64 编码 -ContentVersion表中此字段的 SOAP API 查询可能会更好。

请参阅从 Salesforce和https://stackoverflow.com/a/56268939/313628将 20 mb 文件上传到第三方服务


推荐阅读