2009-05-21 5 views
2

많은 이미지를 저장할 응용 프로그램을 빌드하고 있습니다. Google은 GoGrid.com에서 가상화 된 환경을 갖추고 있으며 클라우드 스토리지를 활용하기를 원했습니다.C에서 UNC 경로에 액세스하는 가장 좋은 방법

확실하지 정확히 (우리의 코드에서) 우리는 배치 또는 이미지를 검색 할 수있는 UNC 경로와 creds를 지정하면,하지만, 그 몹시 비효율적 인 것 같습니다 어떻게 말씀이에 (연결, 이미지를 얻을, 분리)

하는 경우 우리는 한 번에 많은 양의 이미지 또는 많은 사용자를 수행하고 있습니다. 정상적인 서버를 무릎에 가져다 준 것처럼 보입니다.

제 질문은 귀하의 웹 사이트가 실행되는 거대한 드라이브가 부족하다는 것입니다. 어떻게해야합니까? 모든 것이 하나의 좋은 우산 아래에 있기 때문에 다시 한번, 우리는 GoGrid 클라우드 starge 대 Amazon S3를 선택하고 있습니다. 클라우드 저장소는 UNC 경로와 특정 사용자 이름/암호를 통해 액세스 할 수 있습니다.

감사합니다.

답변

0

시간이 지남에 따라 파일 액세스 방법을 변경하고 있다고 생각되면 추상적으로 유지하십시오. 간단한 UNC 구현으로 시작하지만 나중에 웹 서비스 또는 REST 구현으로 변경할 수 있습니다.

+0

일종의 매핑 된 드라이브를 설치하고 코드를 가져 와서 매핑 된 드라이브에 파일을 저장하는 것이 합리적일까요? (각 요청을 연결할 때 대 연결합니까?) – dpluscc

+1

내가 너라면, UNC 경로, 각 요청에 연결, 나머지 시스템 작동. 일단 작동하면 파일 액세스 방법이 성능 문제를 일으키는 지 확인하려고합니다. 나는 그것을하는 것으로 가정하고 시간을 보내지 않을 것입니다. –

0

이전에는 대용량 액세스 서버로는 작업하지 않았지만 UNC 경로에 매우 가벼운 액세스를 찾는 것처럼 나에게 들립니다. 페이스 북은 가벼운 HTTP 구현을 기반으로 한 아키텍처와 단일 10TB 파일 시스템을 사용하는로드 균형 조정을위한 블레이드 서버를 갖추고 있지만, 아직 그곳에있는 것처럼 느껴지지는 않습니다. 연결에서 벗어나는 것을 최대화하려면 연결/읽기/연결 끊기 시퀀스에서 여러 파일을 가져 오십시오. 이렇게하면 사용자가 길게 잠시 기다릴 수 있으며 Google의 경우 20ms가 느려져 사용자가 20 % 감소하는 등의 문제가 발생할 수 있습니다. 그 외에도 단순히 경로에 액세스하는 것보다 빠른 방법을 모릅니다.

+0

나는 UNC에 저장된 파일에 액세스하는 것과 비슷한 문제에 씨름 중이며, 사용자가 1 분을 연결할 수 있으며 다음 번에는 연결할 수 없지만 다음 순간은 할 수 있습니다. 응용 프로그램이 서버에 액세스 한 후 연결이 닫히지 않는다고 생각하지만 System.IO의 File.Copy 및 File.Exist 만 사용합니다. 어떻게 "연결/읽기/연결 끊기"시퀀스를 명시 적으로 관리합니까? – flipdoubt

1

C#은 기본 운영 체제 파일 I/O를 사용하여 기본 경로와 같은 unc 경로를 사용할 수 있습니다. 일반적으로, 당신은 "연결/검색/연결 끊기"를하지 않고 오히려 한 번 드라이브를 매핑 한 것처럼 원격 서버에 대한 연결이 유지됩니다. 드라이브 문자가 없기 때문에 아무런 연결이 없다는 것을 의미하지는 않습니다.

또는 그리드에 대해 전혀 알지 못하는 경우 드라이브를 매핑하거나 Windows의 오프라인 파일 기능을 사용하여 가장 자주 액세스하는 파일을 로컬에 캐시 할 수 있습니다.

관련 문제