AV.File.withURL 支持直接存储文件
AV.File.withURL 目前仅是存储 URL,建议增加一个参数,可以开启直接存储文件。相当于内部先请求对应文件,再存储到 _File 表中,这样会更方便用户使用。
+1
目前只能通过「先 request 文件,再从数据流构建 AVFile」的方式,还是比较麻烦的。 附存储图片文件的代码:
// http://stackoverflow.com/questions/17124053/node-js-get-image-from-web-and-encode-with-base64
var request = require('request').defaults({ encoding: null });
var url = 'https://open.leancloud.cn/assets/img/bg.png'
request.get(url, function (error, response, body) {
console.log(response.statusCode) // 200
console.log(response.headers['content-type']) // 'image/png'
var data = {
data: response.headers["content-type"],
base64: new Buffer(body).toString('base64')
}
var file = new AV.File('resume.png', data)
file.save()
})
这个功能的问题是服务器是需去请求这个文件的,这有两个问题,一是这个过程是很不可靠的,二是带宽成本。
除非上游存储服务提供商能提供这样的能力,否则我们暂时是不会提供这个功能的。
@leeyeh LeanCloud 所使用的七牛云提供这个服务。
@yisheng 我去看下文档
@leeyeh FYI.
第三方资源抓取:http://developer.qiniu.com/code/v6/api/kodo-api/rs/fetch.html
这个功能还是非常有用的,支持了会方便很多。
过程不可靠就让它可靠,或者给用户返回一个准确的错误也可; 宽带成本可以综合去核算一下,可以考虑先支持上,如果成本过高再去修正;