mam następujący powrotem z delayed_job:nieprawidłowy identyfikator URI - jak zapobiec, 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
Sposób ten pochodzi z URI w moja aplikacja jest.
W moim user_mailer zrobić:
@comment.attachments.each do |a|
attachments[a.attachment_file_name] = open(a.authenticated_url()) {|f| f.read }
end
Wtedy w moim modelu Załączniki:
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
Powiedział, że jest to jakiś rodzaj URI.encode lub parsowania mogę zrobić, aby zapobiec poprawny URI (tak jak sprawdziłem adres URL działa w mojej przeglądarce) za błędy i zabicie delayed_job w szynach 3?
Dziękujemy!
Próbowałem 'open (URI.parse (URI.encode (a.authenticated_url()))', ale że errord z OpenURI :: httpError: 403 Forbidden – AnApprentice
Błąd nie oznacza, że adres URL jest zły, oznacza to, że strona nie jest dla Ciebie dostępna –