我最近使用带有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"