如何使用 Rails 和 Active Storage 实施 AWS S3 分段上传?
How to implement AWS S3 Multipart Upload with Rails and Active Storage?
我正在使用带有 multiple:true 选项的 vanilla Rails Active Storage 文件上传。这些文件存储在 S3 上。该设置运行良好。但是,我在考虑对于非常大的文件,实施分段上传以获得最佳速度和可靠性将是有益的。
我在这里找到了对 AWS S3 分段上传的描述:https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html
我还找到了 Ruby 特定页面:https://docs.aws.amazon.com/AmazonS3/latest/dev/uploadobjusingmpu-ruby-sdk.html
但是,我找不到任何关于如何使用 Rails 和 Active Storage 实现此功能的参考资料。
我希望获得一些指导,了解如何在不破坏 Active Storage 的情况下最好地实施分段上传。
万一有人正在寻找这方面的答案。从 Rails 6.1 开始,Active Storage 将支持分段上传。对于大文件,Active Storage 直接上传会自动切换到多部分。无需更改设置。
您可以自定义大型文件的阈值。默认值为 100MB,您可以通过将此添加到亚马逊设置下的 storage.yml 来更改默认值:
上传:
multipart_threshold: <%= 250.megabytes %>
参考:https://github.com/rails/rails/blob/master/activestorage/CHANGELOG.md
我正在使用带有 multiple:true 选项的 vanilla Rails Active Storage 文件上传。这些文件存储在 S3 上。该设置运行良好。但是,我在考虑对于非常大的文件,实施分段上传以获得最佳速度和可靠性将是有益的。
我在这里找到了对 AWS S3 分段上传的描述:https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html
我还找到了 Ruby 特定页面:https://docs.aws.amazon.com/AmazonS3/latest/dev/uploadobjusingmpu-ruby-sdk.html
但是,我找不到任何关于如何使用 Rails 和 Active Storage 实现此功能的参考资料。
我希望获得一些指导,了解如何在不破坏 Active Storage 的情况下最好地实施分段上传。
万一有人正在寻找这方面的答案。从 Rails 6.1 开始,Active Storage 将支持分段上传。对于大文件,Active Storage 直接上传会自动切换到多部分。无需更改设置。
您可以自定义大型文件的阈值。默认值为 100MB,您可以通过将此添加到亚马逊设置下的 storage.yml 来更改默认值: 上传: multipart_threshold: <%= 250.megabytes %>
参考:https://github.com/rails/rails/blob/master/activestorage/CHANGELOG.md