I've been using this forever with paperclip and aws-s3:
def authenticated_url(style = nil, expires_in = 90.minutes) AWS::S3::S3Object.url_for(attachment.path(style || attachment.default_style), attachment.bucket_name, :expires_in => expires_in, :use_ssl => true) end
The new paperclip uses the AWS-SDK gem, which breaks this giving the error:
undefined method `url_for' for AWS::S3:Class
Anyone know how to get this method to work with the new AWS-SDK gem?
To generate a url using the aws-sdk gem you should use the AWS::S3Object#url_for method.
You can access the S3Object instance from a paperclip attachment using #s3_object. The snippet below should resolve your issue.
def authenticated_url(style = nil, expires_in = 90.minutes) attachment.s3_object(style).url_for(:read, :secure => true, :expires => expires_in).to_s end
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With