2

画像について、Apex から salesforce 自体にマルチパート投稿をしたいと考えています。また、Salesforce は画像のバイナリ データを想定しています。ただし、マルチパート規則の一部としてヘッダーに境界のプレフィックスを付け、フッターを追加して、受信側 (この場合は salesforce) が同じデータを解析してデータ (この場合は画像) を処理できるようにする必要があります。問題は、画像がブロブで、ヘッダーとフッターが文字列であることです。また、これら 3 つの部分を Apex で直接連結して SF に送信することはできません。

同様の問題を抱えた人々が提案した 1 つの可能な方法は、base64encoded を使用して blob を文字列に変換し、ヘッダーとフッターを連結することでした。これはうまく機能しますが、33% の回数しか使用できません。理由は、ソース blob データ バイトが正確に 3 の倍数でない場合、base64 encdoing が末尾の padd に「=」または「==」記号を追加するためです (これが base64encoding のしくみです)。したがって、これらの埋め込み文字は、エンコード中に追加されると問題を引き起こします。この最終的な問題を解決するために私が見つけられる実りある方法はなく、SF から 400 の悪い要求を受け取ります。@Nerd のブログで提案された方法がありましたが、それはエラーを 400 から成功した 201 の戻り値に解決します。しかし、背景にある問題は、「=」文字が削除された方法が実際にブロブ データを破損したことです。

上記の連結の問題を回避するために、Content-Transfer-Encoding を「base64」に設定し、画像のみを base64encoded として送信し、ヘッダー/フッターを通常の文字列として送信しようとしましたが、その要求も 500 サーバー エラーを生成しています。

誰かが同様の問題に直面したか、ヘッダー、フッター文字列をブロブ本体に連結するため、またはパディングされた「=」文字を解決してデータを破損しないための回避策へのポインターを持っていますか? または、base64 を Content-Transfer-Encoding メソッドとして使用してマルチパート投稿を送信しようとした人はいますか? どんな助けでも大歓迎です。

カマル

4

1 に答える 1

0

この実際のブログ投稿を確認してください はまったく異なるコンテキストですが、役に立つかもしれないフォーマット変換について示しています. または、このアイデアが Salesforce によって実装されるまで待つ必要があります https://success.salesforce.com/ideaView?id=08730000000Kr80AAC

于 2013-12-09T11:45:56.080 に答える