Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/439.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript将google云存储的存储桶公开给特定的URL或网站_Javascript_Reactjs_Firebase_Iframe_Google Cloud Storage - Fatal编程技术网

javascript将google云存储的存储桶公开给特定的URL或网站

javascript将google云存储的存储桶公开给特定的URL或网站,javascript,reactjs,firebase,iframe,google-cloud-storage,Javascript,Reactjs,Firebase,Iframe,Google Cloud Storage,Firebase托管我的网站。网站有一个元素,它将从谷歌云存储中的bucket加载aaa.html 而且aaa.html还将加载存储在同一存储桶中的其他文件(js文件或img文件) 当我使用gsutil iam ch allUsers:objectViewer gs://bucket设置bucket public和所有文件public时,网站工作得非常好。但是我不希望没有我的网站,用户可以链接aaa.html。设置bucket public似乎不正确 那么,有没有办法向特定网站公开bucket

Firebase托管我的网站。网站有一个
元素,它将从谷歌云存储中的bucket加载
aaa.html

而且
aaa.html
还将加载存储在同一存储桶中的其他文件(
js
文件或
img
文件)

当我使用
gsutil iam ch allUsers:objectViewer gs://bucket
设置bucket public和所有文件public时,网站工作得非常好。但是我不希望没有我的网站,用户可以链接
aaa.html
。设置bucket public似乎不正确


那么,有没有办法向特定网站公开bucket呢?

好的。你说过你不想公开你的桶。签名URL不适合您

我认为你可以通过以下方式实现你的目标:

  • 使用获取存储桶中存储的对象所需的角色和权限定义服务帐户。您的应用程序将使用此服务帐户

  • 使用进入存储桶中存储的文件。以下是如何


  • 希望这对您有所帮助:谢谢您的回复。我使用
    firebase admin
    @google cloud/storage
    在云函数中设置
    servicecomport.json
    。当我以同样的方式通过
    在前面加载
    aaa.html
    时,匿名调用方拒绝了我的访问。如何在网站中加载
    aaa.html
    ?在云函数中,我可以通过
    .getSignedUrl
    返回
    aaa.html
    的url。然后
    加载url。但我只得到了
    aaa.html
    aaa.html
    没有加载其他文件(js文件和图像文件),就像你说的,签名url不适合我。我真的不知道如何正确加载
    aaa.html
    。我与您共享的链接是用于从后端调用API的。你试着从前端调用它。嗯,这个怎么样?按照文档的说法调用API,并在页面中使用jQuery添加结果。这就是使用jQuery动态地向html文件添加元素的方式:告诉我它是如何运行的:请原谅,我太着急了,无法清楚地描述我的问题。我想知道是否有一种方法,只使用前端加载成功。在云函数中,我应该“获取”
    aaa.html
    url吗?或者“下载”
    aaa.html
    ?别担心。我喜欢帮忙。我认为在这种情况下,您应该使用已签名的URL。我找不到从前线传递证件的方法。但这样做,将使您的对象向拥有该URL的任何人公开。