当前位置: 首页 > 知识库问答 >
问题:

将Google云存储上托管的obj和mtl文件加载到Three.js中。

伊锦
2023-03-14
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 );
});
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,我可以得到如下所示的签名链接:

https://storage.googleapis.com/test-bucket/test.png?googleaccessid=blajlakdsjflasjdflkj&expires=14954&signature=v92b0........

顺便说一句。我托管我自己的用户数据库和身份验证,所以没有连接到用户的谷歌账户。

共有1个答案

颜云瀚
2023-03-14

对于理想的安全性,代理可能最适合您的需要。它不必实际代理所有数据。也许三个。js能很好地处理重定向?您可以重定向到已签名的URL。

但是,这取决于您如何对这些对象的隐私进行建模。如果您只是给所有这些对象指定了很长的随机名称,而这些名称实际上是不可能猜到的,那么只要没有坏人能够知道对象名称,您就基本上解决了安全问题。这将快速解决您的问题,而不需要构建复杂的额外服务。

当然,安全建模是复杂的。您是否关心是否需要撤销访问权限?您需要能够限制用户访问对象的时间吗?用户应该能够共享对对象的访问吗?对于你的案子我不知道这些问题的答案。但是通过HTTPS匿名访问的冗长的、无法猜测的名字对其中许多人来说可能已经足够了。

 类似资料:
  • 我正在尝试建立一个基于python的基本谷歌应用引擎站点,允许用户将文件上传到谷歌云存储(主要是图像) 我已经阅读了JSON API和GCS客户端库概述(以及blobstore等)的文档,但仍然没有很好地了解哪种方法是最好的以及它们之间的关系。如果有人能概述一下,或者给我指出一些我可以查看的资源,那就太好了 此外,任何相关的示例代码都会非常有用。我已经能够在此处运行上载示例,但不确定它们是否对应用

  • Firebase Admin SDK文档清楚地说明,服务帐户对存储帐户具有完全的范围控制,但由于传输令牌源为nil,因此正确引导凭据似乎有些错误。

  • 我有一个要求,我需要上传文件到谷歌云存储(他拥有并完全维护它)桶。 这个谷歌云存储桶是由我的客户创建的。 我是谷歌云的新手,有亚马逊S3的经验。我在服务器上运行SSI,以将事务数据加载到平面文件。 我为谷歌云创建了一个示例帐户,并安装了谷歌SDK。我可以通过gsutil手动上传文件。 我的问题是 > 我应该如何建议我的客户共享凭据? 我如何连接到谷歌云存储与提供凭据独立? 如何通过以上两个步骤将文

  • 我的情况是,当我以JSON字符串的形式从其他来源接收数据时,我希望将此字符串上载到Google云存储,而不将此字符串写入本地文件并上载此文件。有没有办法做到这一点。非常感谢。如下代码所示 因此,我预计Google云存储将有一个文件test.json,其中包含来自jsonString的内容

  • 我需要从Google Cloud Storage(GCS->Temp Table->Main table)中加载100个表到BigQuery。我创建了一个python进程,将数据加载到BigQuery中,并在AppEngine中进行调度。因为AppEngine最多有10min的超时时间。我已经在异步模式下提交了作业,并在稍后的时间点检查了作业状态。由于我有100个表,需要创建一个监控系统来检查作业

  • 我的目标是使用BigQuery web界面将我的所有(GCS创建的)日志从Google Cloud Storage中获取到BigQuery中。由于日志每小时创建一次,所以我喜欢一次导入所有日志来进行分析。 因此,例如gs://logging-bucket/images.mysite.net_storage_2013_03_31_07_00_00_0001a_v0、gs://logging-buck