Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails-如何配置不同的s3上传和下载位置?_Ruby On Rails_Amazon Web Services_Amazon S3_Rails Activestorage - Fatal编程技术网

Ruby on rails Rails-如何配置不同的s3上传和下载位置?

Ruby on rails Rails-如何配置不同的s3上传和下载位置?,ruby-on-rails,amazon-web-services,amazon-s3,rails-activestorage,Ruby On Rails,Amazon Web Services,Amazon S3,Rails Activestorage,我有一个Rails应用程序,它将视频上传到s3存储桶,然后触发Lambda函数对视频进行处理,并将其存储在另一个存储桶中 我想修改我的Rails代码,以便可以显示这些经过处理的视频 我目前正在使用ActiveStorage,我知道它不支持多个存储桶,所以我想知道哪种服务支持此功能以及采取的最佳方法 这个答案指向了一些类似于使用carrierwave、fog和cloudfront更改文件路径的东西,但我是一个初学者,所以不确定我是否可以根据自己的需要修改它 如有任何方向建议,将不胜感激 我的解决方

我有一个Rails应用程序,它将视频上传到s3存储桶,然后触发Lambda函数对视频进行处理,并将其存储在另一个存储桶中

我想修改我的Rails代码,以便可以显示这些经过处理的视频

我目前正在使用ActiveStorage,我知道它不支持多个存储桶,所以我想知道哪种服务支持此功能以及采取的最佳方法

这个答案指向了一些类似于使用carrierwave、fog和cloudfront更改文件路径的东西,但我是一个初学者,所以不确定我是否可以根据自己的需要修改它

如有任何方向建议,将不胜感激

我的解决方案 我破解了一个解决方案,就是直接访问处理过的视频。如果它是哑的,但它起作用,那么它就不是哑的

@aws_url = @gif.video.attachment.service_url.sub(/\?.*/, '')
@aws_url = @aws_url.insert(21, '-resized')
@aws_url = @aws_url + '.mp4'
在这里,我在控制器的show方法中将
@aws_url
设置为等于
服务url
减去多余的代码。 然后我在字符串中插入了调整大小的
,以便在字符串中引用正确的s3 bucket名称。
最后,我在结尾添加了
.mp4
,因为所有处理过的视频都是mp4。
为了实现这一点,我将bucket设置为只读,这可能不是最好的办法,但我认为您使用CarrierWave的方法是正确的。我认为是这样。carrierwave文档确实指出了很多选项,你知道从哪一个开始吗?从一些教程开始,用一个bucket来设置carrierwave和S3-获得一些测试,然后继续工作。我认为你使用carrierwave的方法是正确的。我想是的。carrierwave文档确实指出了很多选项,你知道从哪一个开始吗?从一些教程开始,用一个bucket设置carrierwave和S3-获取一些相关测试,然后从那里开始工作