如何将文件存储在亚马逊中,该文件使用载波在一小时内到期



我最近使用带有Amazon S3存储的运营商波上载文件。

我只想生成或提供S3 URL一个小时。之后链接应过期。

我该如何使用载波波?

处理此操作的方法是为S3文件使用预先的URL。使用载波上传文件后,您可以访问实际的S3 URL,并使用AWS :: S3在有效期的时间内预先对其进行预先签名。例如,如果您的S3存储键中的密钥(文件名)为" my_file",则可以这样做:

# Your Model
def presigned_url
  s3 = AWS::S3.new
  bucket = s3.buckets["MyBucket"]
  object = bucket.objects["my_file"]
  object.url_for(:read, secure:true, expires:1.hour)
end

返回的URL有效1小时,然后再也无法工作。

要使用此功能,您需要将AWS-S3宝石包括在您的Gemfile中:

# Gemfile
gem "aws-s3"

最新更新