问题描述:
我需要这样一个功能,我的客户端需要上传图片到upyun,我没有使用那个表单功能,而是选择了使用NodeJS的SDK,主要是应为我这里需要保存很多其他信息在我的数据库里面,我觉得这样通过我的服务器转存到upyun比较方便.
遇到的问题是我上传上去的图片在ftp模式下能被发现,我按照SDK说明拼写的URL给我返回了405 Not Allowed
的错误,上午我作测试的时候按照这样的方法能够正确的通过浏览器查看图片.
//上传的文件直接存到upyun上面
fs.readFile(req.files.file.path, function(err, data) {
var md5Str = md5(data);
upyun.setContentMD5(md5Str);
upyun.setFileSecret('!atest');
upyun.writeFile('/upyuntest/' + _dstName, data, false, function(err, data) {
if (!err) {
var position = req.body.position ? req.body.position.split(',') : [0, 0]
var info = {
url: encodeURI(upyunaddr + '/upyuntest/' + _dstName + '!atest'),
icon: encodeURI(upyunaddr + '/upyuntest/' + _dstName + '!marker.map.tupian'),
id: Date.now(),
position: position,
discription: req.body.describe
}
//后面是本地存储信息的逻辑
} else
throw err;
});
});
以上代码能执行,我后面的存储逻辑能正确的将信息保存到数据库,并且ftp到我upyun上面上传的文件也是存在的.
这里我是相当于直接转发我的客户端发送过来的文件(通过ajax请求).
我现在没有仔细的看过文档,直接出来作伸手党估计会比较快吧?
405 的链接,发下看看。