我有一个私有的 GCS 存储桶,包含我的网站中使用的所有静态媒体/图像文件。
在不公开存储桶的情况下,我需要有一种机制让用户访问这些资源。
GCS 提供“带过期时间的签名 URL”,使这些资源仅在指定时间内有效。签名 URL 生成本身需要 google 库。
我使用 nginx 作为网站的代理。 nginx 是否支持“插入自定义逻辑来为资源请求生成签名 URL,并将请求重定向到 https://storage.googleapis.com”?
我读过有关 nginx 中的 URL 重写的文章,但没有一篇能够解决这种情况,即每个请求都需要“唯一的 URL”。
我有同样的需求,我使用 gcsproxy 来做到这一点:https://github.com/daichirata/gcsproxy
在获得您想要的东西之前,您可能需要进行一些尝试,但它确实有效。
我会使用Cloud Storage FUSE。
Cloud Storage FUSE 使用 FUSE 和 Cloud Storage API 将存储桶透明地公开为文件系统上本地安装的文件夹。 Cloud Storage FUSE 可以在连接到 Cloud Storage 的任何地方运行,包括 Google Kubernetes Engine、Compute Engine 虚拟机或本地系统。
然后,让您的 Nginx 端点读取从私有存储桶挂载的静态文件:
server {
server_name example.com;
root /mount-point;
index index.html;
location / {
try_files $uri /index.html =404;
}
}
你是如何设置 gcsproxy 的?它似乎不起作用,我不知道如何让事情起作用
我有同样的需求,我使用 gcsproxy 来做到这一点:https://github.com/daichirata/gcsproxy
在获得您想要的东西之前,您可能需要进行一些尝试,但它确实有效。