この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

Blob データを挿入または更新する

sObject Basic InformationsObject Rows、または sObject Collections REST リソースを使用して、Salesforce 標準オブジェクトの blob データを挿入または更新できます。任意の種類のファイルをアップロードできますが、MIME マルチパートコンテンツタイプ標準に準拠するマルチパートメッセージを使用する必要があります。詳細は、WC3 標準を参照してください。blob 項目を含む標準オブジェクトのファイルを挿入/更新できます。

sObject Basic Information または sObject Rows API を使用する場合、アップロードの最大ファイルサイズは、ContentVersion オブジェクトの場合は 2 GB、使用可能な他の標準オブジェクトの場合は 500 MB です。sObject Collections API を使用する場合、1 回の要求の全ファイルの最大合計サイズは 500 MB です。

非マルチパートメッセージを使用して blob データを挿入/更新できますが、テキストデータは 50 MB まで、base64 で符号化されたデータは 37.5 MB までに制限されます。

メモ

リクエストメッセージボディの最初のパートには、Description または Name などの非バイナリ項目データが含まれます。メッセージの 2 つ目のパートには、アップロードするファイルのバイナリデータが含まれます。

この後のセクションでは、マルチパートコンテンツタイプを使用して blob データを挿入/更新する JSON の例を示します。

新規 Document の挿入

この構文とコードでは、新規 Document を作成します。ファイル自体のバイナリデータだけではなく、Description、Keywords、Name など、他の項目データも指定します。

新規 Document を追加すると、[ドキュメント] タブで変更の結果を確認できます。

ヒント

新規 Document を作成する例
新規 Document を作成する場合のリクエストボディの例
このコードは、newdocument.json のコンテンツです。ここでは、簡潔にするために PDF コンテンツのバイナリデータは省略されて「Binary data goes here.」に置き換えられています。実際の要求にはバイナリコンテンツ全体が含まれます。
新規 Document を作成する場合のレスポンスボディの例
成功すると、新規 Document の ID が返されます。
エラー応答の例

Document の更新

この構文とコードでは、既存の Document を更新します。ファイル自体のバイナリデータだけではなく、Name や Keywords など、他の項目データも更新されます。

Document オブジェクトの項目を更新する場合の使用例
Document オブジェクトの項目を更新する場合のリクエストボディの例

このコードは、UpdateDocument.json ファイルのコンテンツです。ここでは、簡潔にするために PDF コンテンツのバイナリデータは省略されて「Updated document binary goes here.」に置き換えられています。実際の要求にはバイナリコンテンツ全体が含まれます。

Document オブジェクトの項目を更新する場合のレスポンスボディの例
戻り値なし
エラー応答
「状況コードとエラー応答」を参照してください。

ContentVersion の挿入

この構文とコードでは、新規 ContentVersion を挿入します。ファイル自体のバイナリデータだけではなく、ReasonForChange や PathOnClient など、他の項目も更新されます。ContentVersion は、必ず ContentDocument に関連付けられているため、このメッセージには ContentDocumentId が含まれます。

ContentVersion オブジェクトは update をサポートしていません。したがって ContentVersion を更新することはできません。新しい ContentVersion を挿入することのみが可能です。変更の結果は、[コンテンツ] タブで確認できます。

ヒント

ContentVersion を挿入する場合の使用例
ContentVersion を挿入する場合のリクエストボディの例

このコードは、NewContentVersion.json ファイルのコンテンツです。ここでは、簡潔にするために PDF コンテンツのバイナリデータは省略されて「Binary data goes here.」に置き換えられています。実際の要求にはバイナリコンテンツ全体が含まれます。

ContentVersion を挿入する場合のレスポンスボディの例
ContentVersion を挿入した場合のエラー応答
「状況コードとエラー応答」を参照してください。

sObject コレクションを使用した blob レコードのコレクションの挿入

この構文とコードでは、新規 Document のコレクションを挿入します。ファイル自体のバイナリデータだけではなく、コレクションの各レコードの Description や Name など、他の項目データも指定します。

新規 Document を追加すると、[ドキュメント] タブで変更の結果を確認できます。

ヒ��ト

属性
blob データに sObject コレクションを使用する場合は、リクエストボディの属性の対応付けで type 以外にも特定の属性値を指定する必要があります。
パラメータ 説明
binaryPartName blob データでは必須です。バイナリパートの一意の識別子です。
binaryPartNameAlias blob データでは必須です。バイナリデータが挿入または更新される項目の名前です。
新規 Document を作成する例
新規 Document を作成する場合のリクエストボディの例
このコードは、newdocuments.json のコンテンツです。ここでは、簡潔にするために PDF コンテンツのバイナリデータは省略されて「Binary data goes here.」に置き換えられています。実際の要求にはバイナリコンテンツ全体が含まれます。
新規 Document を作成する場合のレスポンスボディの例
成功すると、新規 Document の ID が返されます。

詳細は、「sObject コレクション」を参照してください。

マルチパートメッセージの考慮事項

blob データを挿入/更新するときの、マルチパートメッセージの形式に関するいくつかの考慮事項を次に示します。

境界文字列
  • マルチパートメッセージの各パートを区分します。
  • マルチパートコンテンツタイプで必須です。
  • 70 文字まで入力できます。
  • メッセージパートのどの部分にも出現しない文字列値である必要があります。
  • 最初の境界文字列には、2 つのハイフン (--) をプレフィックスとして使用する必要があります。
  • 最後の境界文字列には、2 つのハイフン (--) をポストフィックスとして使用する必要があります。
Content-Disposition ヘッダー
  • 各メッセージパートで必須です。
  • 値は form-data であり、name 属性が必要です。
    • 非バイナリのメッセージパートでは、name 属性に任意の値を使用できます。
    • 1 つの Document の場合、バイナリのメッセージパートで、name 属性にバイナリデータを含むオブジェクト項目の名前を含めます。新規 Document を追加した前の例では、ファイルを含むバイナリ項目の名前は「Body」です。
    • sObject コレクションを使用して Document を挿入または更新する場合、name 属性にパートの一意の識別子を含めます。この識別子は、非バイナリのメッセージパートによって参照されます。
  • バイナリのメッセージパートには、ローカルファイルの名前を表す filename 属性が必要です。
Content-Type ヘッダー
  • 各メッセージパートで必須です。
  • 非バイナリのメッセージパートでサポートされているコンテンツタイプは、application/jsonapplication/xml です。
  • バイナリのメッセージパートの Content-Type ヘッダーには、任意の値を使用できます。
改行
メッセージパートのヘッダーとそのパートのデータの間に、改行が必要です。コード例で示されているとおり、Content-Type ヘッダーおよび Content-Disposition ヘッダーと JSON または XML の間に改行が必要です。バイナリパートでは、Content-Type ヘッダーおよび Content-Disposition ヘッダーとバイナリデータの間に改行が必要です。