我目前正在使用dropbox客户端js脚本将zip文件推送到一个文件夹(在测试中,几个k,在生产中,几百兆) - 目前还没有服务器/后端,所以我从arraybuffer发布,而不是服务器url。
var zip = new JSZip();
zip.file("test.txt", "Hello World\n");
var content = zip.generate({type:"arraybuffer"});
// ... code to pick a dropbox folder ...//
client.writeFile(url+"/"+fileName, content, function(error){ ... etc
这一切都运行良好 - 客户端能够编写二进制文件(遗憾的是Dropbox自己的Saver无法做到)。我试图看看Kloudless是否能够执行相同的操作,因为我还需要在某些时候支持谷歌,盒子等。 https://github.com/kloudless/file-explorer/关于其保护程序的文档说文件是一系列网址..
explorer({
...
files: [{
"url": "http://<your image url>",
"name": "filename.extension"
},
它似乎不喜欢使用URL.createObjectURL(blob)
的本地存储文件引用,所以我猜测api告诉远程服务提取文件而不是推送他们的数据。
答案 0 :(得分:0)
您是正确的,Kloudless API后端服务器将文件从URL流式传输到您希望将文件上载到的任何云服务中的最终目标(例如,Dropbox帐户中的文件夹)。
如果文件仅存在于客户端,我建议使用Kloudless Chooser来提示用户选择要保存文件的文件夹,然后处理将文件数据上传到该目的地通过客户端手动。
要执行此操作,请参阅此示例配置:https://jsfiddle.net/PB565/139/embedded/
我已将retrieve_tokens
设置为true
,以便我的客户端JavaScript不仅会收到用户选择上传数据的文件夹的元数据,还会收到用于获取的Bearer令牌访问用户的帐户。这样,客户端JavaScript就可以向Kloudless发出upload或multipart upload个请求,将文件数据上传到该文件夹。分段上传的优点是上传一个块的错误不需要重试整个上传。
请务必将您托管文件资源管理器的域添加到Kloudless App的受信任域(在App Details page上),以便它实际上可以在响应JS回调中接收承载令牌。在我的JSFiddle示例中,我必须将'fiddle.jshell.net'添加到我的应用程序的可信域列表中,以便能够接收Bearer令牌以执行从客户端到Kloudless API的进一步请求。