Salesforce与Azure集成问题:无法按记录ID从Azure拉取数据
Azure Blob拉取失败问题解决方案
根因定位
你收到BlobNotFound错误的核心原因是请求的Blob资源标识与容器内实际存储的Blob不匹配:
- 从容器列表接口返回结果可见,现有存储的Blob完整名称带
.jpg后缀,你请求时使用的ID0x8D97F6B52C756FD缺少对应后缀 - 你请求的ID值本身与列表返回的已存在BlobID
0x8D9776CC0662C88不一致
解决步骤
- 先调用列表接口
https://assetdev.blob.core.windows.net/opencontainer/?comp=list拉取全量Blob元数据,匹配Salesforce侧记录ID对应的Blob完整<Name>字段值,确认包含完整后缀 - 构造规范的Blob访问请求,格式为:
示例中已存在Blob的正确请求地址为:https://assetdev.blob.core.windows.net/opencontainer/[完整Blob名称]?api-version=2020-04-08https://assetdev.blob.core.windows.net/opencontainer/0x8D9776CC0662C88.jpg?api-version=2020-04-08 - 若需要直接通过Salesforce记录ID查询对应Blob,建议在从Salesforce向Azure推送数据的逻辑中,直接将Salesforce记录ID设为Blob名称,或为Blob添加自定义元数据存储对应Salesforce记录ID,后续查询时可通过列表接口筛选元数据快速定位目标Blob
- 确认请求携带了正确的身份校验信息:如果容器为私有访问权限,未携带SAS令牌或存储账户密钥也会触发
BlobNotFound错误
内容的提问来源于stack exchange,提问作者user2568321
相关产品推荐
相关产品推荐

