anchor.diff:        if (files.items.length <= 0) {
           return _drive.drive_folder(rootFolderName); // necessary root blog folder does not exist, create it
         } else {
  -        return new Future.value(files.items.removeAt(0)); // shall only contains 1 item
  +        return new Future.value(files.items[0]); // shall only contains 1 item
         }
       })
       .then((GoogleDriveClient.File file) => completer.complete(file.id))
  
positive.code:         if (attachment.driveId == null) {
            // need to be uploaded
            attachmentList.add(attachment);
            attachmentUploadList.add(_drive.uploadFile(LibPath.join(postBasePubDir, attachment.title), parents: [post.category]));
            PinLogger.instance.fine('[CartPost] _preparePostUpload: attachment upload task added: "${attachment.title}"');
          }
        });
        return Future.wait(attachmentUploadList);
      })
      .then((List<GoogleDriveClient.File> responses) {
        attachmentList.forEach((CartPostAttachment attachment) {
          GoogleDriveClient.File file = responses.removeAt(0);
          attachment.driveId = file.id;
          post.updateAttachment(attachment);
          PinLogger.instance.fine('[CartPost] _preparePostUpload: attachment upload task done: "${attachment.title}":"${attachment.driveId}"');
        });
        postList.update(post);
        return new Future.value(true);
      })
  
negative.code:     String postBaseDataDir = LibPath.join(CartConst.WWW_POST_DATA_PATH, post.uuid);
      var attachmentUploadList = new List<Future>(); // store upload futures
      var attachmentList = new List<CartPostAttachment>(); // store upload attachments
  
      CartCategory category = categoryList.find(post.category);
  
      // FIXME 需要先检查所有需要上传的附件在google drive里存在不存在，存在则报错退出
  
  