2017-03-14 1 views
0

3D 데이터를 처리하기위한 웹 앱을 만들고 각 사용자에게 속한 3D 데이터를 렌더링하려고합니다. 3D 파일 (.obj, .mtl, png 등)은 GCS에 저장되며 사용자는 자신의 3D 파일에만 액세스 할 수 있어야합니다.Google Cloud Storage에 호스팅 된 obj 및 mtl 파일을 Three.js에로드합니다.

이제는 three.js을 사용하여 3d 파일을 렌더링하려하지만 OBLoader 및 MTLLoader를 사용하여 파일을로드하는 좋은 방법을 찾지 못했습니다. 내 서버에서 파일을 정적 컨텐츠로 제공하면로드 및 렌더링에 문제가 없지만 GCS에 저장된 비공개 파일을로드하는 방법을 찾을 수는 없습니다.

나는 정적 파일

를로드하는 데이 코드를 사용하고
const mtlFile = "test.mtl"; 
const objFIle = "test.obj"; 
var mtlLoader = new THREE.MTLLoader(); 
mtlLoader.load(mtlFile, function(materials) { 
    materials.preload(); 
    var objLoader = new THREE.OBJLoader(); 
    objLoader.setMaterials(materials); 
    ObjLoader.load(objFile, function (object) { 
     object.position.z = 40; 
     scene.add(object); 
    }, onProgress, onError); 
}); 

문제는 내 MTL 파일은 일반적으로 다음과 같습니다이다 :

newmtl default 
Ka 1.00 1.00 1.00 
Kd 1.00 1.00 1.00 
Ks 0.00 0.00 0.00 
Ns 20.00 
illum 2 

newmtl test 
Ka 1.00 1.00 1.00 
Kd 1.00 1.00 1.00 
Ks 0.00 0.00 0.00 
Ns 20.00 
illum 2 
map_Ka test.png 
map_Kd test.png 

이라는 파일 test.png을 가리키는 즉 . 기본 경로를 설정할 수 있으므로 여기에서 작동하는 URL http://example.com/test.png을 사용하여 파일을 제공 할 수 있습니다.

그러나 파일을 만든 사용자 만 파일에 액세스 할 수 있기를 바랍니다. 내가 함께 잘 놀 수있는 방법을 찾을 수 없습니다

https://storage.googleapis.com/test-bucket/test.png?GoogleAccessId=blajlakdsjflasjdflkj&Expires=14954&Signature=V92B0 ........

: 나는 GCS에 test.png를 호스팅하는 경우 그리고는 다음과 같습니다 서명 링크를 얻을 수 OBJ/MTL 로더

그래서,이 문제를 해결하는 방법에 대한 모든 팁? 사용자에게만 연결된 파일을 제공하는 일종의 파일 프록시를 만들어야합니까?

btw. 내 사용자 데이터베이스와 인증을 호스팅하고있어 사용자의 Google 계정에 연결되어 있지 않습니다.

답변

0

이상적인 보안을 위해 프록시가 사용자의 요구를 가장 잘 충족시킬 수 있습니다. 실제로 모든 데이터를 프록시 할 필요는 없습니다. 어쩌면 three.js가 리디렉션을 잘 처리합니까? 서명 된 URL로 리디렉션을 보낼 수 있습니다.

그러나 이러한 개체의 개인 정보를 모델링하는 방식에 따라 다릅니다. 이 모든 객체에 긴 시간의 무작위 이름을 부여하여 추측하기가 사실상 불가능한 경우 악의적 인 객체가 객체 이름을 알 수없는 한 대부분 보안 문제가 해결되었습니다. 정교한 추가 서비스를 구축 할 필요없이 신속하게 문제를 해결할 수 있습니다.

물론 보안 모델링은 복잡합니다. 액세스 권한 철회 필요성에 관심이 있으십니까? 사용자가 객체에 액세스 할 수있는 기간을 제한 할 수 있어야합니까? 사용자가 객체에 대한 액세스를 공유 할 수 있어야합니까? 나는 당신의 사건에 대한이 질문들에 대한 답을 모른다. 그러나 HTTPS를 통해 익명으로 액세스되는 길고 견해가없는 이름은 대다수의 사람들에게 충분할 수 있습니다.

관련 문제