6

목표 : 것은 그 본질적으로 내 웹 서버업로드 파일은 웹 애플리케이션하는

에 파일 패턴 및 전송 (POST)과 일치 한 후, 사용자가 폴더를 선택할 수 재귀 적으로 모든 파일을 찾을 수 그냥 더 고급 업로드 대화 상자 ...

표준 웹 기술 (우리는 plupload를 사용하고 있습니다)은 보안상의 이유로 afaik를 지원하지 않습니다.

추가 요구 사항 : webapp에서 사용/설치하기 쉽습니다. SSL 및 and app 사용자 자격 증명이 필요합니다. 레코드 ID와 같은 다른 데이터 (업로드 또는 웹 앱에서 생성)를 사용하면 업로드 파일을 연결할 수 있습니다.

웹 응용 프로그램 자체는 Ruby on Rails로 작성되었지만 특정 Mac 및 Windows (사용자의 80 %) 데스크톱 클라이언트가 필요한 경우에는 별 의미가 없습니다.

내 옵션에는 어떤 것이 있습니까?

오픈 소스 라이브러리에 대한 코드와 참조는 보너스입니다.

+0

"파일 패턴과 일치하는 모든 파일을 반복적으로 찾습니다."폴더에서 모든 png (하지만 jpg가 아닐 수도 있음)를 업로드하려고합니까? 당신은 실제로 무엇을 처리하려고합니까? – whitehat101

+0

1 일 : 정확함. 둘째, 파일 유형은 무엇을 의미합니까? * .dcm – oma

답변

4

Adobe Air 앱을 만드는 것이 좋습니다.

기존의 plupload js 코드를 재사용하여 adobe air apis로 확장 할 수 있습니다. 이상적으로는 대부분 정적 인 앱이지만 정책 문서를 만들려면 서버 호출을하고 업로드시 수행하려는 책 관리는 수행하십시오. Accessing AIR API classes from JavaScript에서 최고점을 잡으십시오. 그런 다음 filesystem.File 클래스를 살펴보십시오.

플래시는 99.3 %의 투과율을 가지고 있으며, 사용자가 "내 업 로더 설치"를 클릭하기 만하면 필요할 경우 에어 프레임 워크가 자동으로 설치됩니다. 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 그래서 루비 제품군에 보관할 수 있습니다. 친숙한 사용자가 필요한 경우 : http://shoesrb.com/tutorials/

+0

일반 사용자는이 기능을 사용할 수 없습니다. 루비는 반드시 설치되거나 S3 자격 증명을 대중에게 제공 할 수 없습니다. 본질적으로 나는 더 고급 업로드 대화 상자가 필요합니다 – oma

0

나는 여전히 어도비 AIR 애플 리케이션에 고용체라고 생각합니다 너의 문제. 쉬운 설치/업데이트를 제공하고 SSL을 지원하며 사용자 환경, 110 % 크로스 플랫폼 등을 완벽하게 제어 할 수 있습니다. 그러나 Adobe를 싫어하거나 UI 코드를 작성하는 경우 WebDav/dav4rack 보석을 살펴 보았습니까?

GitHub의 예는 인증을위한 레일 응용 프로그램에서 고안하고, 그들이 어떤 WebDAV 클라이언트를 통해 파일을 업로드 할 수있는 개인 물통에 액세스하는 사용자에 대해 동일한 자격 증명을 사용하여 사용하는

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

. 웹 응용 프로그램은 URL에 사용자 이름이 포함 된 링크를 제공하여보다 편리하게 액세스 할 수 있습니다.

OS X의 Finder는 기본적으로 Finder의 "서버에 연결"대화 상자 (10.1.1 이상)를 통해 WebDav를 지원합니다.

사용자가 Linux를 사용하는 경우 WebDav를 사용할 수 있다고 확신합니다.

http://en.wikipedia.org/wiki/WebDAV에서 스캔하면 Win98에서 Windows 지원 WebDav처럼 보입니다. 그러나 다른 모든 웹 표준과 함께 Microsoft는 음, 창조적이기로 결정했습니다. 사용자가 KB892211, KB907306, Office, Internet Explorer, OLE-DB 및/또는 "웹 폴더 용 Microsoft Update"로 최신 버전 인 경우 다양한 인증 스키마가있는 SSL을 통해 WebDav 폴더에 쉽게 액세스 할 수 있어야합니다. 모든 Windows 사용자가 정품 Windows를 사용하고 있으며 모든 최신 업데이트 및 전체 Office 제품군을 사용하고 있습니다.

당신의 레일 응용 프로그램 은 WebDAV 서버가이기 때문에, 당신은 오류 (서버에 해당 파일을 쓸 수 없습니다), 후 공정은, 파일/디렉토리를 업로드 던져 (당신이 필요로하는 어떤 부기를 할 수있을 것입니다 업로드 한 내용과 함께 사용자의 계정 보유). Dav4rack은 꽤 좋다. 실제 파일 시스템을 백엔드 또는 데이터베이스로 사용하거나 업로드 된 파일을 S3로 바운스하거나 루비에서 수행 할 수있는 모든 작업을 수행 할 수 있습니다.

나는이 솔루션이 "파일 패턴과 일치하는 모든 파일을 재귀 적으로 찾는다"고 Air 애플 리케이션을 다룰 수 있다고 생각하지 않습니다. 실제 경험이 없다면, 업로드가 완료된 후 (잠재적으로 대역폭 비효율적 인) 패턴 일치가 발생한다고 생각합니다.

+0

정말이 현상금을 원합니다, Jeremy, 하하. WedDav에 대해 어떻게 생각하는지 모르지만 공유에 대해 감사드립니다. Q가 나에게 매우 중요 할 때 가능한 한 많은 각도를 갖기 위해 현상금을 추가합니다. 어도비 AIR 답변을 얻으실 수 있습니다. 다시 한번 감사드립니다. – oma

+0

저희 회사는 업로드 도구를 좀 고려했습니다. S3 (Air 앱이 아닌)에 직접 밀어 넣은 레일 앱의 일부로 하나 만들었지 만 그걸 가지고 몇 가지 단점이 있다는 것을 알게되었습니다. 우리는 실버 라이트 만 사용하고 있습니다. 플래시가 업로드 진행을 가져 오지 못했습니다. 손상된 파일에 몇 가지 문제가있었습니다. HTML5가 실패하고 HTML4가 진행되지 않는 경우도 있었고 맞춤 헤더가 필요하다고 생각합니다. S3에 대한 준비가 프로덕션을 위해 준비가되어 있지 않다는 느낌이 들었습니다. 나는 일을 재 작업하고 더 많은 Air 앱을 만드는 것에 대해 생각해 왔지만, 그것은 나를 위해 다음 프로젝트에 있습니다! – whitehat101

관련 문제