0
您好,我正在构建一个ruby on rails应用程序。我想共享一个附件,最多只有一个小时,之后必须停用该特定的链接。 是否可以做到这一点,而不需要做任何CRON工作?Tempory文件共享
我的要求是用户可以上传附件,他们可以共享加密的URL。该URL的最大有效期将是一个小时。
我想知道是否有可能通过不创建任何CRON作业?如果是,请帮助我?
您好,我正在构建一个ruby on rails应用程序。我想共享一个附件,最多只有一个小时,之后必须停用该特定的链接。 是否可以做到这一点,而不需要做任何CRON工作?Tempory文件共享
我的要求是用户可以上传附件,他们可以共享加密的URL。该URL的最大有效期将是一个小时。
我想知道是否有可能通过不创建任何CRON作业?如果是,请帮助我?
您可以使用应用程序控制器助手before_filter
class ApplicationController < ActionController::Base
before_filter :check_expire
def check_expire
UrlLink.active.where('expire_time <= ?' Time.now).find_each do |url|
url.deactive!
end if UrlLink.active.any?
end
end
模型
class UrlLink < AB
scope :active, -> { where(active: true) }
def deactive!
update(active: false)
end
end
但这项工作缓慢的,如果你有大的分贝。
谢谢@Monk_Code。它是一个文件路径。它将作为附件从公用文件夹中作为服务器。我可以为此添加before_filter吗? – ferdy
要么:为URL(有效的路径参数)创建一个id,并存储与任何模型控制下载的超时值。或者:在加密(或散列)数据中包含超时信息。您应该解释一些关于您目前如何提供下载的更多(使用简化代码),以获得最适合您的答案。 –
Thanks @NeilSlater这是一个简单的载波文件上传,它存储在我的本地应用程序文件夹中。我只是使用** bit.ly **加密该网址,并且这是[http://bit.ly/1ep4FzI]加密的url.my要求非常简单,我不想存储url或CRON作业以使附件无效。只有当用户不应该访问URL以下载文档时,用户上传文档时,上述加密的URL才需要有效一小时。 – ferdy