1

私は現在、ドロップボックスクライアントjsスクリプトを使用してzipファイルをフォルダーにプッシュしています(テストでは数k、本番では数百メガ)-現在サーバー/バックエンドがないため、投稿していますサーバーの 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はこれを行うことができません)。ある時点で Google やボックスなどもサポートする必要があるため、Kloudless が同じことを実行できるかどうかを確認しようとしています。https://github.com/kloudless/file-explorer/のセーバーに関するドキュメントには、ファイルは URL の配列であると書かれています。

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

を使用したローカル ストレージ ファイルの参照が気に入らないようですURL.createObjectURL(blob)。そのため、API がリモート サービスに、データをプッシュするのではなく、ファイルをプルするように指示していると推測します。

4

1 に答える 1

0

Kloudless API バックエンド サーバーが、URL から、ファイルのアップロード先のクラウド サービス (Dropbox アカウントのフォルダーなど) の最終的な宛先にファイルをストリーミングすることは間違いありません。

ファイルがクライアント側にのみ存在する場合は、代わりにKloudless Chooserを使用して、ファイルを保存するフォルダーを選択するようにユーザーに促し、クライアント側を介してその宛先にファイル データを手動でアップロードすることをお勧めします。 .

これを行うには、次の構成例を参照してください: https://jsfiddle.net/PB565/139/embedded/

クライアント側の JavaScript が、ユーザーがデータのアップロード先として選択したフォルダーのメタデータだけでなく、ユーザーのアカウントにアクセスするために使用する Bearer トークンも受け取るように設定retrieve_tokensしました。trueこれにより、クライアント側の JavaScript がKloudless にアップロードまたはマルチパート アップロードリクエストを作成し、ファイル データをそのフォルダーにアップロードできるようになります。マルチパート アップロードの利点は、1 つのチャンクのアップロードでエラーが発生しても、アップロード全体を再試行する必要がないことです。

ファイル エクスプローラーをホストしているドメインを Kloudless アプリの信頼できるドメイン ([アプリの詳細] ページ) に追加して、応答 JS コールバックでベアラー トークンを実際に受信できるようにしてください。私の JSFiddle の例では、「fiddle.jshell.net」をアプリの信頼できるドメインのリストに追加して、クライアント側から Kloudless API へのさらなる要求を実行するベアラー トークンを受け取ることができるようにする必要があります。

于 2016-07-08T21:33:42.780 に答える