6

目標: は、本質的には私のウェブサーバーにファイルパターンと転送(POST)に一致することを再帰的にアップロードファイル

をすべてのファイルを見つけ、その後、ユーザーがフォルダを選択できるようにしますもっと高度なアップロードダイアログ...

標準的なWeb技術(私たちはpluploadを使用しています)はセキュリティ上の理由からafaikをサポートしていません。

追加要件: webappからの使い方/インストールが簡単です。 SSLとアプリのユーザー資格情報が必要です。アップロードファイルを関連付けるレコードID(ウェブアプリから取得または作成)などの他のデータもいいでしょう。

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

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

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

+0

"ファイルパターンに一致するすべてのファイルを再帰的に検索する"ように、フォルダからすべてのPNG(ただしjpgではない場合もある)をアップロードしようとしていますか?あなたは実際何を処理しようとしていますか? – whitehat101

+0

第1位:正しい。第2のファイルタイプはどういう意味ですか? * .dcm – oma

答えて

4

Adob​​e Airアプリケーションを作成することをおすすめします。

既存のplupload jsコードを再利用し、adobe air apisで拡張することができます。理想的には、ほとんど静的なアプリケーションですが、ポリシー文書を作成するためのサーバーコールを作成し、アップロード時にブックキーピングを行います。 Accessing AIR API classes from JavaScriptにピークを迎える。次に、filesystem.Fileクラスを調べます。

Flashには99.3%の普及率があり、「Upload My Uploader」をクリックするだけで、必要に応じてエアフレームワークが自動的にインストールされます。 AirはAndroidとiDevicesにも搭載されているため、99.999%のユーザーとそのママにアプリが提供される可能性があります。

それはそれを見つけるために私に分かかりましたが、ここでああ、私は彼らの例で見つけたものを見Adobe® AIR® API Reference for HTML Developers

です:

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); 
    } 
} 
1

私はこのようなものから始まるクライアントをビルドします: https://github.com/ms4720/s3sync それはあなたがそれをルビーファミリーに保持できるようにします。フレンドリーなGUIが必要な場合: http://shoesrb.com/tutorials/

+0

これは通常のユーザーには機能しません。 Rubyは必ずしもインストールされているわけではなく、S3資格情報を公開することもできません。本質的に私はちょうどより高度なアップロードダイアログが必要です – oma

0

が、私はまだのAdobe AIRアプリケーションがに固溶体であると思いますあなたの問題。簡単なインストール/アップデートを提供し、SSLをサポートし、ユーザーエクスペリエンス、110%クロスプラットフォームなどをフルコントロールできます。 GitHubの例は、認証のためにレールのアプリで工夫使用しており、彼らは任意のWebDAVクライアントを介してファイルをアップロードすることができますプライベートバケットにアクセスするためのユーザーのために同じ資格情報を使用したこと

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

。あなたのWebアプリケーションは、アクセスをより便利にするためにURLにユーザ名を含むリンクを提供することができます。

OS XのFinderは、Finderの「Connect to Server」ダイアログ(10.1.1以降)でネイティブにWebDavをサポートしています。

ユーザーがLinuxを使用している場合、私はWebDavを理解できると確信しています。

スキャンからは、http://en.wikipedia.org/wiki/WebDAVは、Win98のWindows対応WebDavのようです。しかし、他のすべてのWeb標準に沿って、マイクロソフトは創造的であることを決めました。ユーザーがKB892211、KB907306、Office、Internet Explorer、OLE-DB、および/または「Webフォルダ用のMicrosoft Update」で最新のものであれば、さまざまな認証方式を使用してSSL経由でWebDavフォルダに簡単にアクセスできるはずです。私はすべてのWindowsユーザーがすべての最新のアップデートと完全なOfficeスイートを備えたGenuine Windowsを使用していることを確信しています。

あなたのレールのアプリ WebDAVサーバーですので、あなたがエラーを投げることができるようになります(サーバにそのファイルを書き込むことができません)、後工程は、ファイル/ディレクトリをアップロードして、あなたが必要なものは何でも簿記行う(あなたはユーザーのアカウントと、アップロードしたものを持っている) Dav4rackはかなりいいです。実際のファイルシステムをバックエンドやデータベースとして使うことも、アップロードしたファイルをS3にバウンスすることも、ルビーでできることは何でもできる。

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

+0

あなたは本当にこの賞金、ジェレミー、笑をしたいです。私はWedDavについて何を考えているのか分かりませんが、共有してくれてありがとう。 Qが私にとって非常に重要であるとき、私はできるだけ多くの角度を得るために賞金を加えます。あなたはAdobe AIRの答えのためにそれを稼ぐでしょう。再度、感謝します。 – oma

+0

私の会社は、ツールのアップロードを検討しています。私はS3(Airアプリケーションではない)に直接プッシュされるレールアプリの一部として1つを作ったが、それにはかなりの癖があることが判明した。私たちはそれを働かせましたが、ただ銀色でした。 Flashがアップロードの進行状況を取得できませんでした。破損したファイルに問題がありました。 HTML5は失敗し、HTML4はちょっとした進歩なしで動作しました。カスタムヘッダーが必要だと思います。それは私がかなりS3が生産の準備ができていないと直接感じるところまでたどり着いた。私は物事を改造し、もっと多くのAirアプリを作ろうと考えていましたが、それは私にとって次のプロジェクトです! – whitehat101

関連する問題