【问题标题】:Serve audio file from GCS with Rails使用 Rails 从 GCS 提供音频文件
【发布时间】:2021-09-02 15:22:30
【问题描述】:

我的音频文件位于私有 GCS 存储桶中。我想提供这些音频文件供用户收听。

我不能为此使用 Active Storage,因为这些文件是在我的 Rails 应用程序之外创建/删除的。

我可以使用google-cloud-storage gem 下载文件。它将涵盖身份验证、文件下载。但如果我理解正确,我只能提供公共目录中的文件吗?那我需要下载到Rails.public_path吗?

此外,我真的不想在下载这些文件后对其进行管理——缓存、一段时间后删除它们等等。

实现这一目标的最佳方法是什么?

【问题讨论】:

    标签: ruby-on-rails google-cloud-storage ruby-on-rails-6


    【解决方案1】:

    我认为最好的选择是使用google-cloud-storage gem, 因为Google::Cloud::Storage::BucketGoogle::Cloud::Storage::File 都有#signed_url 方法。这样你就可以找到你需要的相关文件并创建一个临时url,将url发送给客户端,客户端将直接负责下载文件。

    如果您不希望客户端直接从 Google Cloud 下载文件,您可以自己从 GC 下载文件,并在控制器中使用 #send_data#send_file

    【讨论】:

      猜你喜欢
      • 2015-09-05
      • 1970-01-01
      • 1970-01-01
      • 2019-08-29
      • 1970-01-01
      • 2012-07-10
      • 1970-01-01
      相关资源
      最近更新 更多