Ruby on rails 如何使用RubyonRails/Coffeescript测试S3预签名的GET url以查看它是否已过期,如果已过期,如何重新生成它
我正在用RubyonRails构建一个文档管理系统,它使用AmazonS3进行存储。我正在使用carrierwave和carrierwave aws gems上传/下载文件 我可以生成一个预先签名的url,该url在一段时间后过期(越快越好…可能10秒-1分钟),但我遇到的问题是,如果有人加载页面,但没有立即单击“下载”按钮,那么链接过期,他们会被指向一个丑陋的XML错误 我想弄清楚的是:Ruby on rails 如何使用RubyonRails/Coffeescript测试S3预签名的GET url以查看它是否已过期,如果已过期,如何重新生成它,ruby-on-rails,amazon-web-services,amazon-s3,coffeescript,carrierwave,Ruby On Rails,Amazon Web Services,Amazon S3,Coffeescript,Carrierwave,我正在用RubyonRails构建一个文档管理系统,它使用AmazonS3进行存储。我正在使用carrierwave和carrierwave aws gems上传/下载文件 我可以生成一个预先签名的url,该url在一段时间后过期(越快越好…可能10秒-1分钟),但我遇到的问题是,如果有人加载页面,但没有立即单击“下载”按钮,那么链接过期,他们会被指向一个丑陋的XML错误 我想弄清楚的是: 当点击下载按钮(我想用Coffeescript)或 继续并在页面加载时生成预签名的url,但是当单击下载时
在过去,我对类似的问题采取了以下完全服务器端的方法(不使用载波,但不应该相关) 让下载按钮链接到应用程序中的控制器/操作,传递文档id。然后,控制器操作生成一个预先签名的URL,然后将用户重定向到该URL 理论上,在这样一个预先指定的URL上,您只需要很短的生存期,尽管如果文件足够大,用户可能希望暂停并恢复传输,那么更长的生存期可能是可取的