Postman を使用して Salesforce に画像をアップロードしようとしましたが、API 応答は成功を示しています。
Idが068から始まっているのでContentVersionオブジェクトは作成されている感じですね。
ただし、画像は Salesforce では表示されません。Content-Type が正しく設定され、ParentId を使用して画像が適切なレコードに関連付けられていることを確認しました。
PDFファイルのようですがプレビューできていません。
以下とエラーメッセージは同じみたいですが...
これとはちょっと違う?
バイナリーファイル
public static void sendBinaryFile(String endpointUrl, String fileName, Blob fileBlob) {
HttpRequest req = new HttpRequest();
req.setEndpoint(endpointUrl);
req.setMethod('POST');
// Define the boundary
String boundary = '------------------------boundary123';
req.setHeader('Content-Type', 'multipart/form-data; boundary=' + boundary);
// Construct the body
String bodyStart = '--' + boundary + '\r\n' +
'Content-Disposition: form-data; name="file"; filename="' + fileName + '"\r\n' +
'Content-Type: application/pdf\r\n\r\n';
String bodyEnd = '\r\n--' + boundary + '--';
// Combine the body parts
Blob bodyBlob = Blob.valueOf(bodyStart).append(fileBlob).append(Blob.valueOf(bodyEnd));
req.setBodyAsBlob(bodyBlob);
// Send the request
Http http = new Http();
try {
HttpResponse res = http.send(req);
System.debug('Response: ' + res.getBody());
} catch (Exception e) {
System.debug('Error: ' + e.getMessage());
}
}
大きなサイズのファイルをアップロードする
以下を見てもApexで大きなサイズのファイルを使うのは難しいと思います。
REST APIを利用してログファイルを取得すればサイズの制限は回避できると思います。