ruby-on-rails - Ruby on Rails 下载 S3 视频文件
问题描述
想要下载 S3 签名视频文件...但不是下载它去播放...
使用 send_data S3 下载
send_data open(file).read, filename: 'archive12.mp4', type: 'video/mp4', disposition: 'attachment'
解决方案
您正在使用open(file).read
. 因此它读取文件并播放它。也许删除.read
. 尝试添加stream
标志。也请看send_file
:https ://api.rubyonrails.org/classes/ActionController/DataStreaming.html#method-i-send_file 。
或者使用 aws-sdk 也许?
require 'aws-sdk'
s3 = Aws::S3::Resource.new(
region: 'us-east-1',
access_key_id: '...',
secret_access_key: '...'
)
s3.bucket('bucket-name').object('key').get(response_target: '/path/to/file')
如果您仍想使用send_data
,不妨试试:
data = open("https://s3.amazonaws.com/PATTH TO YOUR FILE")
send_data data.read, filename: 'archive12.mp4', stream: false, type: 'video/mp4', disposition: 'attachment'
推荐阅读
- terminal - 如何在 macOS 上的 VS Code 终端中自定义 shell 提示
- html - 508/(1)链接必须具有可识别文本,(2)空表格单元格(Axe 插件)的可访问性规则
- php - 表列表是动态的,需要使用多数组的跳过方法
- c# - 通过引用从两个列表中删除对象
- excel-formula - 有没有办法动态地对表格中的对角线求和?
- excel - 如何添加每 250 个单元的循环并偏移数组?
- javascript - 如何通过在所述行中搜索特定值从数组中返回一行
- android - Auth Activity 返回到我的应用程序,而不是系统设置
- sql-server - 使用 ASP.NET Core API 2.1 在 SQL Server 中记录 Elmah 错误
- python - 在 Plotly 中从 DataFrame 列添加多个文本标签