7

目標: ユーザーがフォルダーを選択できるようにし、ファイル パターンに一致するすべてのファイルを再帰的に見つけて、Web サーバーに転送 (POST) します。

本質的には、より高度なアップロード ダイアログです...

標準の Web テクノロジ (plupload を使用しています) は、セキュリティ上の理由から、これをサポートしていません。

追加要件: webapp からの使用/インストールが簡単であること。SSL とアプリ ユーザーの資格情報が必要です。アップロード ファイルを関連付けるために、レコード ID (Web アプリから取得または作成) などの他のデータがあれば便利です。

Web アプリ自体は Ruby on Rails で書かれていますが、ネイティブの Mac および Windows (= 私のユーザーの 80%) デスクトップ クライアントが必要な場合は、それほど重要ではありません。

私のオプションは何ですか?

これを行うためのコードとオープン ソース ライブラリへの参照はおまけです。

4

3 に答える 3

4

AdobeAirアプリを作成することをお勧めします。

既存のpluploadjsコードを再利用して、adobeairapisで拡張できます。理想的には、ほとんど静的なアプリですが、サーバー呼び出しを行ってポリシードキュメントを作成し、アップロードで実行したい簿記を実行します。JavaScriptからのAIRAPIクラスへのアクセスでピークを迎えましょう。次に、filesystem.Fileクラスを調べます。

Flashの普及率は99.3%で、ユーザーは[Install My Uploader]をクリックするだけで、必要に応じてAirFrameworkが自動的にインストールされます。AirはAndroidとiDeviceにも搭載されているため、99.999%のユーザーとその母親がアプリを利用できる可能性があります。

見つけるのに1分かかりましたが、HTML開発者向けのAdobe®AIR®APIリファレンスは次のとおりです。

ああ、私が彼らの例で見つけたものを見てください:

var directory = air.File.documentsDirectory;

try
{
    directory.browseForDirectory("Select Directory");
    directory.addEventListener(air.Event.SELECT, directorySelected);
}
catch (error)
{
    air.trace("Failed:", error.message)
}

function directorySelected(event) 
{
    directory = event.target ;
    var files = directory.getDirectoryListing();
    for(var i = 0; i < files.length; i++)
    {
        air.trace(files[i].name);
    }
}
于 2012-05-04T03:10:05.177 に答える
1

Ruby ファミリーに保持できるように、https ://github.com/ms4720/s3sync のようなものからクライアントを構築します 。使いやすい GUI が必要な場合: http://shoesrb.com/tutorials/

于 2012-05-01T13:26:47.373 に答える
0

Adobe Air アプリは、あなたの問題に対する確かな解決策だと思います。簡単なインストール/更新を提供し、ssl をサポートし、ユーザー エクスペリエンスを完全に制御し、110% クロス プラットフォームを実現できます。ただし、Adobe や UI コードの記述が嫌いな場合は、WebDav や dav4rack gem を調べたことがありますか?

https://github.com/bryanrite/dav4rack-example-devise-subdirectories

この GitHub の例では、認証のために Rails アプリで devise を使用し、ユーザーが任意の WebDav クライアントを介してファイルをアップロードできるプライベート バケットにアクセスするために同じ資格情報を使用しました。Web アプリは、URL にユーザー名を含むリンクを提供して、アクセスをより便利にすることができます。

OS X の Finder は、Finder の [サーバーに接続] ダイアログを介して WebDav をネイティブにサポートします (10.1.1 以降)。

ユーザーが Linux を使用している場合、WebDav を理解できるはずです。

http://en.wikipedia.org/wiki/WebDAVをスキャンすると、Windows が Win98 で WebDav をサポートしているように見えます。ただし、他のすべての Web 標準と同様に、Microsoft は、ええと、創造的であることを決定しました。ユーザーが KB892211、KB907306、Office、Internet Explorer、OLE-DB、および/または「Web フォルダーの Microsoft Update」を最新の状態にしていれば、SSL 経由でさまざまな認証スキームを使用して WebDav フォルダーに簡単にアクセスできるはずです。すべての Windows ユーザーは、すべての最新の更新プログラムと完全な Office スイートを備えた正規の Windows を使用していると思います。

Rails アプリWebDav サーバーであるため、エラーをスローし (そのファイルをサーバーに書き込めません)、アップロードされたファイル/ディレクトリを後処理し、必要な簿記を行うことができます (ユーザーのアカウントがあり、彼らがアップロードしたもので)。Dav4rack はかなりいいです。実際のファイルシステムをバックエンドまたはデータベースとして使用したり、アップロードされたファイルを S3 にバウンスしたり、Ruby でできることは何でもできます。

このソリューションは、「ファイルパターンに一致するすべてのファイルを再帰的に検索する」コンポーネントに対応しているとは思いません.Airアプリはそうではありません. 実世界での経験がなければ、アップロードが完了した後にパターン マッチングが行われると想像できます (帯域幅が非効率的である可能性があります)。

于 2012-06-14T05:59:41.067 に答える