저는 C#을 사용하여 ASP.NET의 문서 관리 시스템에서 작업하고 있습니다. 모든 폴더와 파일을 Windows 서버에 저장하고 폴더와 파일 정보를 SQL 데이터베이스에 저장합니다. 매번 서버에 폴더 나 파일을 만들고 데이터베이스에서 고유 한 ID로 이름을 추가합니다. 예 : ~ 432cace7-a39c-4db5-a38f-9efe5d289bbf.pdf기준에 따라 파일 및 폴더 다운로드 및 삭제
같은 폴더에 액세스 할 수 있고 액세스를 기준으로 삭제하고 다운로드 할 수있는 사용자가 있습니다.
예 : 사용자 1, 사용자 2가 2 명입니다. 나는 2 개의 파일을 포함하는 폴더 -1을 가지고있다. file-1은 user-1과 file-2에 의해 user-2에 의해 업로드됩니다. 이제 user-1이 브라우저 페이지에서 파일을 볼 때 데이터베이스 쿼리를 기반으로 folder-1과 file-1을 표시합니다. 그러나 사용자 one이 다운로드를 위해 folder-1을 선택하면 Windows 서버로 이동하여 파일 -1과 파일 -2를 물리적으로 서버의 동일한 폴더 내에 있으므로 다운로드합니다. 같은 경우도 삭제됩니다.
이 시나리오를 어떻게 처리 할 수 있습니까?
기본적으로 SQL에서의 처리는 관계형 데이터베이스에서는 훨씬 쉽지만 Windows 서버에서 어떻게 효율적으로 처리 할 수 있을지 생각하고 있습니까?
내 생각 : ID 목록을 반환하는 DB 저장 프로 시저를 호출하면 다운로드 ZIP 또는 삭제가 생성됩니다. 그러나 폴더와 파일의 중첩이있을 수 있으므로 성능면에서 얼마나 효율적입니까?
var file_name = response.value[0]["name"];
var downloadurl = response.value[0]"@microsoft.graph.downloadUrl"];
// --------------------- : JS 파일에서
:
사용자가 브라우저 URL을 사용하여 파일 또는 폴더로 바로 이동할 수 있습니까? 자신의 파일을 다운로드하는 데 사용 된 URL 형식을 기반으로 파일 이름을 추측하여 다른 사람이 파일을 다운로드 할 수 있습니까? – PhillipH
사용자는 파일 이름을 추측 할 수 있지만 해당 이름과 관련된 파일의 고유 한 GUID를 추측 할 수는 없습니다. 마찬가지로 위의 내 예제를 알면, 파일 및 폴더 이름 형식으로됩니다 : name ~ guid – user2272865