如何使用nginx作为私有GCS存储桶的代理?

问题描述 投票:0回答:3

我有一个私有的 GCS 存储桶,包含我的网站中使用的所有静态媒体/图像文件。

在不公开存储桶的情况下,我需要有一种机制让用户访问这些资源。

GCS 提供“带过期时间的签名 URL”,使这些资源仅在指定时间内有效。签名 URL 生成本身需要 google 库。

我使用 nginx 作为网站的代理。 nginx 是否支持“插入自定义逻辑来为资源请求生成签名 URL,并将请求重定向到 https://storage.googleapis.com”?

我读过有关 nginx 中的 URL 重写的文章,但没有一篇能够解决这种情况,即每个请求都需要“唯一的 URL”。

nginx google-cloud-platform url-rewriting google-cloud-storage nginx-reverse-proxy
3个回答
3
投票

我有同样的需求,我使用 gcsproxy 来做到这一点:https://github.com/daichirata/gcsproxy

在获得您想要的东西之前,您可能需要进行一些尝试,但它确实有效。


0
投票

我会使用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;
    }
}

0
投票

你是如何设置 gcsproxy 的?它似乎不起作用,我不知道如何让事情起作用


我有同样的需求,我使用 gcsproxy 来做到这一点:https://github.com/daichirata/gcsproxy

在获得您想要的东西之前,您可能需要进行一些尝试,但它确实有效。

© www.soinside.com 2019 - 2024. All rights reserved.