You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何仅向网站订阅者开放Google Cloud Bucket存储内容的访问权限?

Google Cloud Bucket 私有资源访问自定义域名解决方案

解决跳转第三方域名问题

  • 配置存储桶自定义域名映射:将你自己站点的二级域名,比如res.yourdomain.com绑定到目标存储桶,Google Cloud支持直接关联自定义域名到存储桶,配置完成后资源访问地址就会使用你自己的二级域名,不会再跳转storage.googleapis.com域名。配置时需要先通过Google Search Console验证域名所有权,在存储桶设置页的「编辑网站配置」板块就能找到绑定入口。
  • 可选搭配CDN:如果资源访问量较大,可以绑定Google Cloud CDN使用同一个自定义域名,还能额外提升资源加载速度,不会产生额外的域名跳转。

实现仅订阅者可访问的权限控制

  • 所有资源访问请求先走你站点后端校验:不要直接暴露存储桶资源直链,用户点击站点内的资源链接时,后端先校验当前登录用户的订阅状态,确认是有效订阅者后,用GCP服务账号生成签名URL返回给前端访问。
  • 签名URL可以设置自定义过期时间,比如设为10分钟有效期,就算链接被用户分享出去,过期后也无法正常访问,避免资源被盗用。
  • Node.js环境生成签名URL代码示例:
const {Storage} = require('@google-cloud/storage');
// 初始化GCP存储实例,传入服务账号密钥
const storage = new Storage({
  keyFilename: '你的服务账号密钥文件路径.json'
});
const bucket = storage.bucket('你的存储桶名称');

async function generateSignedUrl(filePath) {
  const options = {
    version: 'v4',
    action: 'read',
    expires: Date.now() + 10 * 60 * 1000, // 签名URL10分钟后过期
  };
  const [url] = await bucket.file(filePath).getSignedUrl(options);
  return url;
}
  • 存储桶基础权限配置:关闭存储桶的所有公共访问权限,仅保留生成签名URL用的服务账号拥有存储对象的读取权限,从根源避免未授权访问。

注意:如果需要自定义域名支持HTTPS访问,需要在Google Cloud Load Balancer中配置你自己的SSL证书,或者直接使用Google托管的免费证书,避免自定义域名走HTTP出现不安全提示。

内容的提问来源于stack exchange,提问作者Boltu Bhatt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 01:48:03