【问题标题】:GCP cloud storage get downloadable urlGCP 云存储获取可下载 url
【发布时间】:2020-10-22 22:27:24
【问题描述】:

我有一个公共存储桶,用于托管公共用户内容。

我想让用户能够下载这些文件,方法是单击一个链接,该链接会打开 gcp 页面,该页面会自动开始下载。为此,需要设置 content-disposition 标头。

我还要设置下载文件的文件名。

有没有办法在 gcp 中处理这个问题?

我知道我可以生成一个签名的 url:Google Cloud Storage: download a file with a different name,并设置所需的标题,但我认为这不是正确的解决方案。据我了解,在访问受保护的资源时,应该使用签名的 url。有没有办法轻松获取下载链接?

我目前在自己的服务器上处理这个问题,但我想让 gcp 处理它。 这是一个云文件的演示网址:https://storage.googleapis.com/just-demo-bucket-14512/Big_Buck_Bunny_1080_10s_5MB.mp4

router.get('/download', (req, res) => {
    res.setHeader("content-disposition", "attachment; filename=cool.mp4");
    request('https://storage.googleapis.com/just-demo-bucket-14512/Big_Buck_Bunny_1080_10s_5MB.mp4').pipe(res);
})

【问题讨论】:

  • 我不明白。你有一个公共的buket,为什么要使用singedURL?内容处置是正确的做法。您可以将其永久设置到 Cloud Storage 中,以防止将其添加到您的代码中。
  • 我想即时设置 content-disposition 标头。通过 GET 参数设置它是完美的。
  • GET parameter 中,您的意思是当您从存储中获取文件时,您想要https://storage.googleapis.com/path/to/file?content-disposition=... 之类的内容,对吧?
  • 这个 GET 参数会很完美。
  • 如果您想要静态内容配置,您可以使用 Cloud Storage 的标头。但是如果你想要一些动态的东西,你必须在它前面放一个服务器。

标签: node.js google-cloud-platform google-cloud-storage


【解决方案1】:

如果你想动态设置 content-disposition 标头,换句话说:

https://storage.googleapis.com/path/to/file?content-disposition=... 

那么答案是否定的;你不能这样做。

如果您想要静态内容配置,可以使用 Cloud Storage 的标头,但如果您想要动态内容,则必须在其前面放置一个服务器。

但是,如果您强烈认为这必须由 Cloud Storage API 处理,您可以提出 feature request 并指定应如何实施以及它将具有的附加值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-24
    • 2021-08-22
    • 2018-12-08
    • 2018-07-04
    • 2018-02-04
    • 1970-01-01
    • 2019-11-15
    相关资源
    最近更新 更多