code: function () {
      var chunk = preparePartBuffer();
      localPartNumber = localPartNumber + 1;
      pendingParts = pendingParts + 1;
  
      (function (localPartNumber) {
        cachedClient.uploadPart({
          Body: chunk,
          Bucket: multipartUploadResult.Bucket,
          Key: multipartUploadResult.Key,
          UploadId: multipartUploadID,
          PartNumber: localPartNumber
        }, function (err, result) {
          if (err) return abortUpload(err);
  
          pendingParts = pendingParts - 1;
  
          var part = {
            ETag: result.ETag,
            PartNumber: localPartNumber
          };
  
          partIds[localPartNumber - 1] = part;
  
          ws.emit('part', part);
  
          if (!pendingParts && completed) completeUpload();
        });
      })(localPartNumber);
    }
docs: /*
  分块(Part)上传数据
  flushPart 会从缓存区中取出所有缓存数据，并清空缓存区的数据