2016-07-08 42 views
1

我目前使用Dropbox客戶端js腳本將zip文件壓入文件夾(測試中,幾k,在生產中,幾百兆) - 目前沒有' t服務器/後端,所以我從一個陣列緩衝區發佈,而不是服務器的網址。從客戶端發送文件到Kloudless保護程序

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是否能夠執行相同的操作,因爲我還需要在某個時候支持Google,Box等。的https://github.com/kloudless/file-explorer/有關其保護文件說,這些文件的URL數組..

explorer({ 
... 
files: [{ 
    "url": "http://<your image url>", 
    "name": "filename.extension" 
}, 

它似乎沒有使用URL.createObjectURL(blob)喜歡本地存儲文件引用,所以我猜的API說的是遠程服務拉取文件而不是推送他們的數據。

回答

0

無論您希望文件上傳到哪個雲服務(例如Dropbox帳戶中的文件夾),Kloudless API後端服務器都將文件從URL流式傳輸到最終目標,這是正確的。

如果這些文件僅存在於客戶端,我建議使用Kloudless Chooser來提示用戶選擇一個文件夾來保存文件,然後通過客戶端將文件數據上傳到該目的地手動。

要做到這一點,請參閱本示例配置:https://jsfiddle.net/PB565/139/embedded/

我已經設置retrieve_tokenstrue讓自己的客戶端JavaScript將接收不只是用戶選擇將數據上傳到該文件夾​​的元數據,但也是用於訪問用戶帳戶的不記名令牌。這允許客戶端JavaScript然後將uploadmultipart upload請求發送給Kloudless以將文件數據上傳到該文件夾​​。分段上傳的優點是上傳一個塊的錯誤不會要求重新上傳整個上傳。

確保將您承載文件資源管理器的域添加到您的Kloudless應用程序的可信域(在App Details page上),以便它實際上可以在響應JS回調中接收承載令牌。在我的JSFiddle示例中,我必須將'fiddle.jshell.net'添加到我的應用程序的Trusted Domains列表中,以便能夠接收持票人標記以從客戶端向Kloudless API執行進一步的請求。