Blob データを挿入または更新する
リクエストメッセージボディの最初のパートには、Description または Name などの非バイナリ項目データが含まれます。メッセージの 2 つ目のパートには、アップロードするファイルのバイナリデータが含まれます。
新規 Document の挿入
このセクションには、新規 Document を作成するための構文とコードが含まれます。ファイル自体のバイナリデータの他に、Description、Keywords、Name などの他の項目データも指定されています。
- 新規 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 を挿入する場合の使用例
-
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/json と application/xml です。
- バイナリのメッセージパートの Content-Type ヘッダーには、任意の値を使用できます。
- 改行
- メッセージパートのヘッダーとそのパートのデータの間に、改行が必要です。コード例で示されるとおり、Content-Type ヘッダーや Content-Disposition ヘッダーと、JSON または XML の間に改行が必要です。バイナリのパートでは、Content-Type ヘッダーや Content-Disposition ヘッダーとバイナリデータの間に改行が必要です。