返回

ruby-将google bucket文件传输给最终用户而不在本地保存文件

发布时间:2022-07-21 15:44:00 209
# 服务器# 服务器

现在,当客户端从我的网站下载文件时,我:

  1. 从google cloud bucket下载文件到服务器(GCP下载文件,GCP流媒体下载)
  2. 将下载的文件保存到RubyTempfile
  3. sending Tempfile to enduser using Rails 5 发送_文件

我想跳过第2步,以某种方式将文件从谷歌云传输/流式传输到最终用户,而不将文件保存在我的服务器上——这可能吗?注意,google bucket是私有的。

我当前使用的代码:

    # 1 getting file from gcp:
    storage = Google::Cloud::Storage.new
    bucket  = storage.bucket bucket_name, skip_lookup: true
    gcp_file    = bucket.file file_name

    # 2a creates tempfile
    temp_file = Tempfile.new('name')
    temp_file_path = temp_file.path
    # 2b populate tempfile with gcp file content:
    gcp_file.download temp_file_path

    # 3 sending tempfile to user
    send_file(temp_file, type: file_mime_type, filename: 'filename.png')

我想要的是:


    # 1 getting file from gcp:
    storage = Google::Cloud::Storage.new
    bucket  = storage.bucket bucket_name, skip_lookup: true
    gcp_file    = bucket.file file_name

    # 3 sending/streaming file from google cloud to client:
    send_file(gcp_file.download, type: file_mime_type, filename: 'filename.png')
特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像