如何在golang请求中使用二进制数据发送--boundary_string

I wanted to upload a csv file in my salesforce instance via golang request from my server, now in salesforce's documentation, they gives an example like

curl https://yourInstance.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

and

--boundary_string
Content-Disposition: form-data; name="entity_document";
Content-Type: application/json

{
   "Description" : "Marketing brochure for Q1 2011",
   "Keywords" : "marketing,sales,update",
   "FolderId" : "005D0000001GiU7",
   "Name" : "Marketing Brochure Q1",
   "Type" : "pdf"
}

--boundary_string
Content-Type: application/pdf
Content-Disposition: form-data; name="Body"; filename="2011Q1MktgBrochure.pdf"

Binary data goes here.

--boundary_string--

So how can I convert this request in golang?