que tiene la siguiente vuelta de delayed_job:URI no válido: cómo prevenir, URI :: InvalidURIError errors?
[Worker(XXXXXX pid:3720)] Class#XXXXXXX failed with URI::InvalidURIError: bad URI(is not URI?): https://s3.amazonaws.com/cline-local-dev/2/attachments/542/original/mac-os-x[1].jpeg?AWSAccessKeyId=xxxxxxxx&Expires=1295403309&Signature=xxxxxxx%3D - 3 failed attempts
La forma en que esto viene de URI en mi aplicación es.
En mi user_mailer hago:
@comment.attachments.each do |a|
attachments[a.attachment_file_name] = open(a.authenticated_url()) {|f| f.read }
end
Luego, en mi adjuntos modelo:
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 => attachment.s3_protocol == 'https')
end
Dicho esto, ¿hay algún tipo de URI.encode o análisis que pueda hacer para prevenir una URI válido (como comprobé que la URL funciona en mi navegador) para el error y matar a la tarea demorada en los carriles 3?
¡Gracias!
Probé 'abierto (URI.parse (URI.encode (a.authenticated_url()))', sino que errord con OpenURI :: HTTPError: 403 Forbidden – AnApprentice
Ese error no significa que la URL es mala, significa que la página no está disponible para usted. –