我正在考虑是否在 S3 上而不是在本地托管上传的媒体文件(视频和音频)。我需要检查用户对每次下载的权限。
所以会有一个类似的动作get_file
,它首先检查用户的权限,然后从 S3 获取文件并使用 send_file 将其发送给用户。
def get_file
if @user.can_download(params[:file_id])
# first, download the file from S3 and then send it to the user using send_file
end
end
但在这种情况下,服务器(不必要地)首先从 S3 下载文件,然后将其发送给用户。我认为 S3 的用例是绕过 Rails/HTTP 服务器堆栈以减少负载。
我想错了吗?
PS。我正在使用 CarrierWave 进行文件上传。不确定这是否相关。