2012-06-22 3 views
4

내 응용 프로그램에는 파일 시스템에 모든 파일의 하위 집합 만 포함된다는 사실을 투명하게 만들기 위해 Java와 파일 시스템 사이의 계층이 필요합니다 S3). 레이어는 파일을 열고, 읽기/쓰기 등을 위해 잠그고, 파일을 열 때 파일을 다운로드하고 닫힌 파일을 축출해야하는 등 일반 파일 IO가하는 일을 많이해야합니다. 필자가 필요로하는 또 다른 기능은 파일이 읽기/쓰기 용으로 잠겨 있으면 열려있는 호출로 파일의 잠금을 해제하고 기존 스트림을 닫을 수 있다는 것입니다 (즉, 다른 사용자를 강제 종료). 다른 하나는 임시 파일 관리입니다.Java 라이브러리 - 원격 (예 : S3) 파일 용 로컬 파일 캐시

원격으로 유사한 소스가 있습니까? 아니면 슬리브를 감아 야합니까? 내가 처음부터 시작해야할까요, 아니면 자바 입출력에 몇 가지 갈고리가 있어야합니까?

+0

2 년이 지났습니다. 결국 무엇을 했습니까? –

+0

@DavidNewcomb 작성했습니다. 나는 그것을 후회했다. 상태가 DB에서 추적되지 않기 때문에 잠금은 서버에서 작동하지 않습니다. 하지만 괜찮아. 우리는 생산에 사용합니다. 너는 그것을 필요로 하느냐? –

+0

File.listFiles()를 캐싱 할 항목을 찾고 프로젝트를 발견했습니다. 그것은 흥미로웠다. 그래서 그것은 단지 그것이 어떻게 갔는지 궁금해했다. –

답변

0

나는 당신에게 확인을 제안 할 것입니다. apache commons vfs 그것이 정확히 당신이 필요로하지는 않더라도, 당신은 그것으로부터 유용한 아이디어를 찾을 수 있습니다.

0

은 아마도 AWS Storage Gateway이 경우

게이트웨이 캐시 볼륨에서 고려할 가치가있다 : 당신은 아마존 S3에 기본 데이터를 저장하고, 로컬 자주 액세스하는 데이터를 유지할 수 있습니다. 게이트웨이 캐시 볼륨은 기본 스토리지에서 상당한 비용을 절감하고, 사내에서 스토리지를 확장 할 필요성을 최소화하며, 자주 액세스하는 데이터에 대한 대기 시간이 적은 액세스를 유지합니다.

+0

Java 라이브러리가 아닌 어플라이언스입니다. 나는 내 자신을 구현하는 것을 끝내고, 고통을 많이 겪었으며, 너무 복잡하게 만들었고 (파일 잠금, 잠금 장치의 강력한 도용 등), 접근법의 요소가 잘못되어 지금 다시 작성하는 것을 연기하고 있습니다. –

+0

@AleksandrDubinsky 나는 알았지 만 어쩌면 구매 대 상황을 도울 것입니다. – fglez

0

이 프로젝트의 목적은 Java 7 NIO (java7-fs-base)에 대한 사용자 정의 파일 시스템 구현을 간단하게 만드는 것을 목표로합니다. 저자는 Dropbox FS (java7-fs-dropbox)를 구현하고 S3 (java7-fs-amazon-s3)에 대한 작업을 시작했습니다. https://github.com/fge/java7-filesystems

관련 문제