salesforce - 如何将大文件从 Salesforce 上传到第三方?
问题描述
我可以使用 HTTP 请求从 Salesforce 向 AWS s3 存储桶发送最大 4.5 MB 的文件。我们如何使用 HTTP 请求从 Salesforce 发送 50 MB 的文件?
解决方案
您需要反转流程。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 文件上传到第三方服务
推荐阅读
- kubernetes-helm - Helm 模板与 values.yaml 结构不兼容
- c++ - Qt C++应用部署问题,使用Visual Studio 2019创建
- javascript - JS 函数在递归调用期间返回“未定义”
- flutter - 如何在 Flutter 中进行自定义边框设计?
- reactjs - “Reactjs”如何在不使用钩子的情况下在功能组件内创建模式
- r - 如何使用 r 中“下一个”组的第一个值?
- tensorflow - 为什么 Huggingface create_optimizer 方法不起作用?
- python - Selenium:等到元素中不存在文本
- reactjs - 在反应中映射项目列表并分别编辑每个项目
- matlab - 在matlab中找到biginteger的模幂