code: function(callback) {
              if(typeof opts !== "object") return callback();
  
              defOpts = Object.merge(defOpts, opts);
              for(var key in defOpts) {
                  if(!defOpts.hasOwnProperty(key)) continue;
                  switch(key) {
                  case "mkdir": header.mkdir = defOpts.mkdir; break;
                  case "md5": {
                      if(!md5) break;
                      if(typeof defOpts.md5 === "string" && 32 === defOpts.md5.length) {
                          header["content-md5"] = defOpts.md5;
                          break;
                      }
                      header["content-md5"] = md5(rawData);
                      break;
                  }
                  case "secret": header["content-secret"] = defOpts.secret; break;
                  case "mime": header["content-type"] = defOpts.mime; break;
                  default: break;
                  }
              }
  
              callback();
          }
docs: check options
  @param callback