PrepareUpload determines whether the data in the supplied reader should be uploaded in a single request, or in sequential chunks. chunkSize is the size of the chunk that media should be split into. If chunkSize is non-zero and the contents of media do not fit in a single chunk (or there is an error reading media), then media will be returned as a MediaBuffer. Otherwise, media will be returned as a Reader.

After PrepareUpload has been called, media should no longer be used: the media content should be accessed via one of the return values.