ruby-on-rails - 使用 ActiveStorage 服务直接上传到 S3 的视频
问题描述
我正在使用ActiveStorage
允许用户将视频上传到 Amazon S3 并让他们在以后查看它们。这些视频是示范课的附件。
#app/models/lesson.rb
class Lesson
has_one_attached :video
end
流式传输视频的 html 是
<video controls class='video_size'>
<source src=<%= rails_blob_path(lesson.video) %> type='video/mp4' />
</video>
但是,我创建了许多视频,希望允许用户观看。这些视频已经直接上传到同一个 S3 存储桶,所以我知道视频的亚马逊网址。
有没有办法使用这些已知的 url 直接创建 ActiveStorage blob,即。
@special_blob = create_blob_from_amazon_url(amazon_url)
然后在视图中
<video controls class='video_size'>
<source src=<%= rails_blob_path(@special_blob) %> type='video/mp4' />
</video>
还是我必须使用 ActiveStorage 上传视频才能创建 blob?
解决方案
我认为您正在寻找的是#build/create_after_upload!
:
https://medium.com/weareevermore/manual-uploads-using-activestorage-47808dab1b65
https://apidock.com/rails/v6.0.0/ActiveStorage/Blob/create_after_upload%21/class
推荐阅读
- continuous-integration - Gitlab CI/CD 只部署一个阶段
- laravel - 返回重复记录的id
- php - 我的 AES 函数正确加密值,但解密返回 FALSE
- java - 如何以 1000 行为单位读取大型 .txt 文件
- angular - Angular 8 Http Post 从订阅中获取布尔值
- sql - 在将数据插入 SQL 时,索引(从零开始)必须大于或等于零且小于 EF 核心中参数列表的大小
- javascript - 将 PHP 数组传递给 JavaScript for 循环
- reactjs - 将 Firebase 照片传输到 G-Drive
- java - 在Java中创建路径的速记?
- excel - 宏来改变word中图像和内联形状的样式?