Blob データを挿入または更新する
sObject Basic Information または sObject Rows API を使用する場合、アップロードの最大ファイルサイズは、ContentVersion オブジェクトの場合は 2 GB、使用可能な他の標準オブジェクトの場合は 500 MB です。sObject Collections API を使用する場合、1 回の要求の全ファイルの最大合計サイズは 500 MB です。
リクエストメッセージボディの最初のパートには、Description または Name などの非バイナリ項目データが含まれます。メッセージの 2 つ目のパートには、アップロードするファイルのバイナリデータが含まれます。
新規 Document の挿入
この構文とコードでは、新規 Document を作成します。ファイル自体のバイナリデータだけではなく、Description、Keywords、Name など、他の項目データも指定します。
- 新規 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 を挿入する場合の使用例
-
- ContentVersion を挿入する場合のリクエストボディの例
-
このコードは、NewContentVersion.json ファイルのコンテンツです。ここでは、簡潔にするために PDF コンテンツのバイナリデータは省略されて「Binary data goes here.」に置き換えられています。実際の要求にはバイナリコンテンツ全体が含まれます。
- ContentVersion を挿入する場合のレスポンスボディの例
-
- ContentVersion を挿入した場合のエラー応答
- 「状況コードとエラー応答」を参照してください。
sObject コレクションを使用した blob レコードのコレクションの挿入
この構文とコードでは、新規 Document のコレクションを挿入します。ファイル自体のバイナリデータだけではなく、コレクションの各レコードの Description や Name など、他の項目データも指定します。
- 属性
- 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/json と application/xml です。
- バイナリのメッセージパートの Content-Type ヘッダーには、任意の値を使用できます。
- 改行
- メッセージパートのヘッダーとそのパートのデータの間に、改行が必要です。コード例で示されているとおり、Content-Type ヘッダーおよび Content-Disposition ヘッダーと JSON または XML の間に改行が必要です。バイナリパートでは、Content-Type ヘッダーおよび Content-Disposition ヘッダーとバイナリデータの間に改行が必要です。