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

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

SObject Basic Information および SObject Rows REST リソースを使用して、Salesforce 標準オブジェクトの blob データを挿入または更新できます。任意の種類のファイルをアップロードできますが、MIME マルチパートコンテンツタイプ標準に準拠するマルチパートメッセージを使用する必要があります。詳細は、WC3 標準を参照してください。blob 項目を含む標準オブジェクトのファイルを挿入/更新できます。ContentVersion オブジェクトのアップロードの最大ファイルサイズは 2 GB ですが、使用可能な他の標準オブジェクトの場合は 500 MB です。

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

メモ

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

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

新規 Document の挿入

このセクションには、新規 Document を作成するための構文とコードが含まれます。ファイル自体のバイナリデータの他に、Description、Keywords、Name などの他の項目データも指定されています。

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

ヒント

新規 Document を作成する例
1curl https://na1.salesforce.com/services/data/v23.0/sobjects/Document/ -H "Authorization: Bearer token" -H "Content-Type: multipart/form-data; boundary=\"boundary_string\"" --data-binary @newdocument.json
新規 Document を作成する場合のリクエストボディの例
このコードは、newdocument.json のコンテンツです。ここでは、簡潔にするために PDF コンテンツのバイナリデータは省略され、「Binary data goes here.」に置き換えられています。実際の要求にはバイナリコンテンツ全体が含まれます。
1--boundary_string
2Content-Disposition: form-data; name="entity_document";
3Content-Type: application/json
4
5{  
6    "Description" : "Marketing brochure for Q1 2011",
7    "Keywords" : "marketing,sales,update",
8    "FolderId" : "005D0000001GiU7",
9    "Name" : "Marketing Brochure Q1",
10    "Type" : "pdf"
11}
12
13--boundary_string
14Content-Type: application/pdf
15Content-Disposition: form-data; name="Body"; filename="2011Q1MktgBrochure.pdf"
16
17Binary data goes here.
18
19--boundary_string--
新規 Document を作成する場合のレスポンスボディの例
成功すると、新規 Document の ID が返されます。
1{
2    "id" : "015D0000000N3ZZIA0",
3    "errors" : [ ],
4    "success" : true
5}
エラー応答の例
1{
2    "fields" : [ "FolderId" ],
3    "message" : "Folder ID: id value of incorrect type: 005D0000001GiU7",
4    "errorCode" : "MALFORMED_ID"
5}

Document の更新

このセクションには、既存の Document を更新するための構文とコードが含まれます。ファイル自体のバイナリデータの他に、Name や Keywords などの他の項目データも更新されます。

Document オブジェクトの項目を更新する場合の使用例
1curl https://na1.salesforce.com/services/data/v23.0/Document/015D0000000N3ZZIA0 -H "Authorization: Bearer token" -H "Content-Type: multipart/form-data; boundary=\"boundary_string\"" --data-binary @UpdateDocument.json -X PATCH
Document オブジェクトの項目を更新する場合のリクエストボディの例

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

1--boundary_string
2Content-Disposition: form-data; name="entity_content";
3Content-Type: application/json
4
5{  
6    "Name" : "Marketing Brochure Q1 - Sales",
7    "Keywords" : "sales, marketing, first quarter"
8}
9
10--boundary_string
11Content-Type: application/pdf
12Content-Disposition: form-data; name="Body"; filename="2011Q1MktgBrochure.pdf"
13
14Updated document binary data goes here.
15
16--boundary_string--
Document オブジェクトの項目を更新する場合のレスポンスボディの例
戻り値なし
エラー応答
状況コードとエラー応答を参照してください。

ContentVersion の挿入

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

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

ヒント

ContentVersion を挿入する場合の使用例
1curl https://na1.salesforce.com/services/data/v23.0/sobjects/ContentVersion -H "Authorization: Bearer token" -H "Content-Type: multipart/form-data; boundary=\"boundary_string\"" --data-binary @NewContentVersion.json
ContentVersion を挿入する場合のリクエストボディの例

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

1--boundary_string
2Content-Disposition: form-data; name="entity_content";
3Content-Type: application/json
4
5{
6    "ContentDocumentId" : "069D00000000so2",
7    "ReasonForChange" : "Marketing materials updated",
8    "PathOnClient" : "Q1 Sales Brochure.pdf"
9}
10
11--boundary_string
12Content-Type: application/octet-stream
13Content-Disposition: form-data; name="VersionData"; filename="Q1 Sales Brochure.pdf"
14
15Binary data goes here.
16
17--boundary_string--
ContentVersion を挿入する場合のレスポンスボディの例
1{
2    "id" : "068D00000000pgOIAQ",
3    "errors" : [ ],
4    "success" : true
5}
ContentVersion を挿入した場合のエラー応答
状況コードとエラー応答を参照してください。

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

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

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