code: public Uploader startUploadFileSingle(String targetPath, DbxWriteMode writeMode, long numBytes)
          throws DbxException
      {
          DbxPathV1.checkArg("targetPath", targetPath);
          if (numBytes < 0) throw new IllegalArgumentException("numBytes must be zero or greater");
  
          String host = this.host.getContent();
          String apiPath = "1/files_put/auto" + targetPath;
  
          ArrayList<HttpRequestor.Header> headers = new ArrayList<HttpRequestor.Header>();
          headers.add(new HttpRequestor.Header("Content-Type", "application/octet-stream"));
          headers.add(new HttpRequestor.Header("Content-Length", Long.toString(numBytes)));
  
          HttpRequestor.Uploader uploader = DbxRequestUtil.startPut(requestConfig, accessToken, USER_AGENT_ID, host, apiPath, writeMode.params, headers);
  
          return new SingleUploader(uploader, numBytes);
      }
docs: Similar to {@link #uploadFile}, except always uses the /files_put API call.
  One difference is that {@code numBytes} must not be negative.