前两天,我正在用一个vmware中虚拟出来的mac os镜像happy的coding。附近线路检修,电kucha一下就断了。我可怜的台式机就像断了线的风筝一样,留下我看着黢黑的屏幕随风飘零。
电力恢复后,我悲剧的发现vmware的镜像果然是坏掉了,起不来了。我的没有push的两个commit也在损坏的vmdk文件中嘲笑我。
在查阅了相关资料后,使用了大家推荐的UFS Explorer,试着从vmdk中恢复文件像这样:
前两天,我正在用一个vmware中虚拟出来的mac os镜像happy的coding。附近线路检修,电kucha一下就断了。我可怜的台式机就像断了线的风筝一样,留下我看着黢黑的屏幕随风飘零。
电力恢复后,我悲剧的发现vmware的镜像果然是坏掉了,起不来了。我的没有push的两个commit也在损坏的vmdk文件中嘲笑我。
在查阅了相关资料后,使用了大家推荐的UFS Explorer,试着从vmdk中恢复文件像这样:
虚拟机的mac升级到10.12后,分辨率被锁定1024x768,直接vi编辑配置文件无法保存,在vmware中共享的文件夹也无法打开。
原因是10.11之后增加了System Integrity Protection (SIP)功能,禁止让软件以 root 身份来在 Mac 上运行。
好在有办法关掉。
常规办法是在引导时按住command+R键,进入recovery environment,在终端进行操作,比如这样:
How to turn off System Integrity Protection in El Capitan
Click the menu.
Select Restart...
Hold down command-R to boot into the Recovery System.
Click the Utilities menu and select Terminal.
Type csrutil disable and press return .
Close the Terminal app.
Click the menu and select Restart... .
不过虚拟机好像不太好正确按出来,可以尝试在引导时按住command键(普通键盘alt键)进入boot manager,然后选择Enter setup ——> Boot from a file ——> Recovery HD[PciRoot(0x0)/…] ——> ——> boot.efi
Express 的集成度越来越小,一些附加功能都是通过中间件实现的,上传功能需要处理form-data,试用了一下busboy(在Express中使用connect-busboy),还是十分不错的。
busboy 原地址:https://github.com/mscdex/busboy
connect-busboy中给出的例子十分简单,或者说十分简陋,具体功能还需要在busboy原地址中学习。
首先需要在app.js中require一下,并设置相关参数
var busboy =require('connect-busboy');
app.use(busboy({ immediate: true }));
其中immediate选项表示立即从request流读取并解析数据
然后在routes里开写吧!
var uuid = require('node-uuid')
if (req.busboy) {
req.busboy.on('file', function(fieldname, file, filename, encoding, mimetype) {
console.log(fieldname);
console.log(filename);
console.log(file);
console.log(mimetype);
if(mimetype.substr(0,5)=="image"){//我这里是上传了图片
var id = uuid.v1();
console.log(id);
tmpUploadPath = path.join(conf.__uploads, id+'.jpg');
file.pipe(fs.createWriteStream(tmpUploadPath));
msg = {errorno:0,uuid:id,msg:"success"}
}
});
req.busboy.on('field', function(key, value, keyTruncated, valueTruncated) {//处理其他非文件字段
console.log(key);
console.log(value);
});
req.busboy.on('finish', function() {//处理完毕后的回调
res.json(msg)
});
}
可以看到 busboy在处理form-data还是非常方便的,值得选用,如果进一步进行裁剪、缩放的功能,再结合gm之类的中间件处理应该更好