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을 사용하여 파일을 제공 할 수 있습니다.
그러나 파일을 만든 사용자 만 파일에 액세스 할 수 있기를 바랍니다. 내가 함께 잘 놀 수있는 방법을 찾을 수 없습니다
: 나는 GCS에 test.png를 호스팅하는 경우 그리고는 다음과 같습니다 서명 링크를 얻을 수 OBJ/MTL 로더
그래서,이 문제를 해결하는 방법에 대한 모든 팁? 사용자에게만 연결된 파일을 제공하는 일종의 파일 프록시를 만들어야합니까?
btw. 내 사용자 데이터베이스와 인증을 호스팅하고있어 사용자의 Google 계정에 연결되어 있지 않습니다.